1 solutions
-
0
#include<bits/stdc++.h> using namespace std; const int N=101; int deng[N]; stack<int> liang; stack<int>mie; pair<int,int>liangmie[1001]; string s[9]; int total; int position=0; vector <int >on,off; int cishu=0; int state[8][6]= { {1,1,1,1,1,1}, //无 {0,0,0,0,0,0},//1 {0,1,0,1,0,1},//2 {1,0,1,0,1,0},//3 {0,1,1,0,1,1},//4 {1,1,0,0,0,1},//24 {0,0,1,1,1,0},//34 {1,0,0,1,0,0} //14 } ; void jisuan(int shuliang,int shuzu[] ) { int flag=1; int shuchuflag=1; for(int k=0; k<shuliang; k++) { flag=1; // cout<<"aa"<<endl; for(int i=0; i<position; i++) { // cout<<"aa"<<endl; //s cout<<liangmie[i].first<<" "<<liangmie[i].second<<endl; if(state[shuzu[k]][(liangmie[i].first-1)%6]!=liangmie[i].second) { flag=0; break; } } if(flag==1) { if(cishu>=1) cout<<endl; cishu++; for(int i=1; i<=total; i++) { cout<<state[shuzu[k]][(i-1)%6]; } shuchuflag=0; } } if (flag==0&&shuchuflag==1) cout<<"IMPOSSIBLE"; } int main() { int shunxu0[1]= {0}; int shunxu1[4]= {1,2,4,3}; int shuxu2[7]= {1,6,2,7,3,5,0}; int shuxu3[8]= {1,6,2,4,7,3,5,0}; int counter; cin>>total>>counter; int a; cin>>a; while(a!=-1) { liangmie[position]=make_pair(a,1); cin>>a; position++; } cin>>a; while(a!=-1) { liangmie[position]=make_pair(a,0); cin>>a; position++; } //scout<<position<<endl; if(counter==0) { jisuan(1,shunxu0); } else if(counter==1) { jisuan(4,shunxu1); } else if(counter==2) { jisuan(7,shuxu2); } else if(counter>=3) { jisuan(8,shuxu3); } }
- 1
Information
- ID
- 224
- Time
- 1000ms
- Memory
- 125MiB
- Difficulty
- 6
- Tags
- # Submissions
- 42
- Accepted
- 13
- Uploaded By