예제 #1
0
파일: 3279.cpp 프로젝트: 8cbx/code-area
int main()
{
    int flag;
    while(scanf("%d%d",&n,&m)!=EOF)
    {
        flag=0;
        for(int i=0; i<n; i++)
        {
            for(int j=0; j<m; j++)
            {
                scanf("%d",&maz[i][j]);
            }
        }
        for(int i=0; i<(1<<m); i++)
        {
            memcpy(stat,maz,sizeof(maz));
            memset(ans,0,sizeof(ans));
            if(check(i))
            {
                printans();
                flag=1;
                break;
            }
        }
        if(flag==0)
        {
            printf("IMPOSSIBLE\n");
        }
    }
    return 0;
}
예제 #2
0
파일: 439C.c 프로젝트: GuidoPaul/ACM
int main(int argc, char *argv[]) {
	freopen("in.txt", "r", stdin);
	int x, i;

	while(scanf("%d%d%d", &n, &k, &p) != EOF) {
		cnta = cntb = 0;
		for (i = 0; i < n; i++) {
			scanf("%d", &x);
			// a 存偶数 , b 存奇数
			if(x % 2 == 0) {
				a[cnta++] = x;
			} else{
				b[cntb++] = x;
			}
		}
		if(cntb < (k - p)) {
			printf("NO\n");
		} else if(cntb == (k - p)) {
			if(cnta < p) {
				printf("NO\n");
			} else {
				printans();
			}
		} else {
			int temp = cntb - (k - p);
			if(temp % 2 == 1) {
				printf("NO\n");
			} else {
				if(temp / 2 + cnta < p) {
					printf("NO\n");
				} else {
					printans();
				}
			}
		}
	}
	return 0;
}
int main()
{
    int g,f,i=0,cas;
    scanf("%d",&cas);
    for(i=0;i<cas;i++)
    {
        chu();
        for(f=0;f<13;f++)
        {
            scanf("%s",ch);    
            if('m' == ch[1])
                own[0][ch[0]-'0']++;
            else if('s' == ch[1])
                own[1][ch[0]-'0']++;
            else if('p' == ch[1])            
                own[2][ch[0]-'0']++;
            else
                own[3][ch[0]-'0']++;            
        }    
        for(f=0;f<=2;f++)
            for(g=1;g<=9;g++)
            {
                if(4 == own[f][g])
                    continue;
                own[f][g]++;
                if(1 == check())
                {
                    ans[f][g]=1;
                    sum++;
                }
                own[f][g]--;                
            }
        for(g=1;g<=7;g++)
        {
            if(4 == own[3][g])
                continue;
            own[3][g]++;
            if(1 == check())
            {
                ans[3][g]=1;
                sum++;
            }
            own[3][g]--;            
        }
        printans();
    }
    return 0;
}
예제 #4
0
void output(char *tmp)
{ 

		fprintf(out,"===The response of query %s ===\n",tmp);

		if(ans[0]>=0)
		{ 
			if(ans[1]>=0)sort();
	 		for(int i=0;ans[i]!=-1;i++)
			{
				printans(ans[i]);
			}
		}
		else
		{
			fprintf(out,"[0] [No message is related to iPhone]\n",tmp);
		} 
		fprintf(out,"\n");
}