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);
    }
  • 相关阅读:
    C#与JS实现 获取指定字节长度 中英文混合字符串 的方法
    CKFinder_AspDotNet_2.4 破解方法 去版权
    MVC3中如何输出富文本
    CKEditor与CKFinder整合 MVC3
    vue项目多页配置
    设备宽度
    h5前端项目常见问题汇总
    react分享
    javascript-复制
    vue开发笔记
  • 原文地址:https://www.cnblogs.com/TheRoadToTheGold/p/8710375.html
Copyright © 2011-2022 走看看