1379 大菠萝II的符文

来源:互联网 发布:适合旅游的泳衣 知乎 编辑:程序博客网 时间:2024/04/27 20:36
 
描述

小L最近在和同寝哥们玩大菠萝II,他很想收集里面的一个道具:符文

符文有等级的,假设是1-5级吧;

有个规则是:3个i级符文可以合成一个I+1级别符文(5级不能再合了)

小L干的事情是:他用N个不同职业不同等级的号去刷不同等级的怪,有的号上有部分符文,现在他想把这些所有符文都转到一个帐号上去,然后慢慢合成;

还有个奇怪事情:小L用不同号刷的时候,同一个号上同一个符文最多只有1个,可能是0个。

假设这N个帐号都编号1-N,而且他登录的顺序就是按照1-N依次登录的;

合成的规则是这样的:对于同一级的符文,如果有,只保留一个,多余的一旦有了3个相同的就合成一次;

每转一个号的符文他就会去合成一次;

现在的问题是:如果他能收集齐所有种类符文,请问在最早在转第几个号的时候可以完成?

输入

输入第一行包含一个整数N,表示有N个号;N不超过10000;

一下N行每行包含5个整数,分别表示第I个号上第J种符文的个数bij(0<=bij)

输出

如果他可能收集齐,请输出最小编号;

如果不能收集齐,请输出-1;

样例输入
3
0 0 1 1 1
1 1 0 0 0
1 1 0 1 1
样例输出
2
提示

二进制

模拟题

#include <iostream>#include <cstdio>using namespace std;int main(){int a[5];int temp[5];int number;int count;int i,t,j;cin>>number;    for(i=0;i<5;i++){cin>>a[i];}for(t=1;t<number;t++){count=0;for(i=0;i<5;i++)cin>>temp[i];for(j=4;j>0;j--){a[j]=a[j]+temp[j];if(a[j]==4){ a[j-1]++;a[j]=1;}}a[0]+=temp[0];for(i=0;i<5;i++){if(a[i]>=1)count++;if(count==5)break;}if(count==5){printf("%d\n",t+1);break;}else{continue;}}if(t==number)printf("-1\n");}


 

原创粉丝点击