九度 oj 题目1486:False coin

来源:互联网 发布:define() php 编辑:程序博客网 时间:2024/05/16 00:39

http://ac.jobdu.com/problem.php?pid=1486


参考了 

1. http://blog.csdn.net/huahua520amy/article/details/9822561

2.http://blog.csdn.net/u011255131/article/details/53580630


code 简化于 参考2

#include <stdio.h>#include <cstring>#include <cstdlib>int main(){     int c[2002],left[1001],right[1001];    int *pt,*pl,*pr;    int n,k,pi;    char str[2];    //freopen("in/1486.in","r",stdin);     while(scanf("%d%d",&n,&k)!=EOF){         int max_value = -1 , idx = 0;        memset(c,0,sizeof(c));        while(k--){            scanf("%d",&pi);              for (int i = 0; i < pi; ++i) {                 scanf("%d",&left[i]);              }             for (int i = 0; i < pi; ++i) {                 scanf("%d",&right[i]);              }             scanf("%s",str);             pl = left; pr = right;            switch(str[0]){                 case '<':                   pt = pl;                   pl = pr;                   pr = pt;                 case '>':                   pt = pl;                   for (int i = 0; i < pi; ++i,++pt) {                        if (c[*pt] != 101) {                           if(c[*pt] <=0) --c[*pt];                             else c[*pt] = 101;                       }                     }                    pt = pr;                   for (int i = 0; i < pi; ++i,++pt) {                        if (c[*pt] != 101) {                            if(c[*pt] >=0) ++c[*pt];                            else c[*pt] = 101;                       }                     }                    break;                case '=':                   pt = pl;                   for (int i = 0; i < pi; ++i,++pt) {                        c[*pt] = 101;                    }                    pt = pr;                   for (int i = 0; i < pi; ++i,++pt) {                        c[*pt] = 101;                    }                    break;            }          }           for (int i = 1; i <=n; ++i) {             if(c[i] == 101) continue;             if (abs(c[i]) > max_value) {                 max_value = abs(c[i]);                idx = i;             }else if (abs(c[i]) == max_value ) {                 idx = 0;             }            }         printf("%d\n",idx);     }}  


0 0
原创粉丝点击