zoukankan      html  css  js  c++  java
  • cdqz2017-test11-占卜的准备

    #include<cstdio>
    #include<iostream>
    #include<algorithm>
    
    using namespace std;
    
    #define N 201
    
    pair<int,int>p[N];
    char s[N];
    
    int ans[N],cnt;
    
    bool vis[N];
    
    int start;
    int tmp[N];
    
    void read(int &x)
    {
        x=0; char c=getchar();
        while(!isdigit(c)) c=getchar();
        while(isdigit(c)) { x=x*10+c-'0'; c=getchar(); } 
    }
    
    pair<int,int> operator - (pair<int,int> a,pair<int,int> b) { return make_pair(a.first-b.first,a.second-b.second); }
    
    int Cross(pair<int,int> a,pair<int,int> b) { return a.first*b.second-a.second*b.first; }
    
    bool cmp(int a,int b)
    {
        return Cross(p[a]-p[start],p[b]-p[start])>0;
    }
    
    int main()
    {
        freopen("divination.in","r",stdin);
        freopen("divination.out","w",stdout);
        int n;
        read(n);
        for(int i=1;i<=n;++i) read(p[i].first),read(p[i].second);
        scanf("%s",s+1);
        start=1;
        for(int i=2;i<=n;++i) 
            if(p[i]<p[start]) start=i;
        ans[++cnt]=start; 
        vis[start]=true;
        int m;
        for(int i=1;i<=n-2;++i)
        {
            m=0;
            for(int j=1;j<=n;++j)
                if(!vis[j]) tmp[++m]=j; 
            sort(tmp+1,tmp+m+1,cmp);
            if(s[i]=='L') start=tmp[1];
            else start=tmp[m];
            ans[++cnt]=start;
            vis[start]=true;
        }
        for(int i=1;i<n;++i) printf("%d ",ans[i]);
        for(int i=1;i<=n;++i) if(!vis[i]) printf("%d",i);
    }
  • 相关阅读:
    问题 A: 【递归入门】全排列
    第一个struct2程序(2)
    第一个struct2程序
    Java学习 第二节
    重学Java
    Servlet过滤器
    struct2
    Java web struct入门基础知识
    one by one 项目 part 6
    软件工程导论 桩模块和驱动模块
  • 原文地址:https://www.cnblogs.com/TheRoadToTheGold/p/8710375.html
Copyright © 2011-2022 走看看