Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <cstdio>
- #include <algorithm>
- #include <vector>
- #include <cmath>
- using namespace std;
- #define R(i,_a,_b) for(int i=int(_a);i<int(_b);i++)
- #define RV(i,_a,_b) for(int i=int(_a);i>=int(_b);i--)
- int num,nkandang,nbuka;
- int steps[1002];
- bool a[1002][10002];
- int main() {
- scanf("%d%d", &nkandang, &nbuka);
- R(i,1,nbuka+1) {
- scanf("%d", &num);
- a[i][num]=1;
- }
- R(i,1,nbuka+1) {
- R(j,1,nkandang+1) {
- if(i==1 and a[i][j]!=1) {
- a[i][j]=0;
- } else {
- if(j>1 and a[i-1][j-1]!=1 and a[i][j]!=1) {
- a[i][j]=0;
- } else
- if(j<nkandang and a[i-1][j+1]!=1 and a[i][j]!=1) {
- a[i][j]=0;
- } else a[i][j]=1;
- }
- }
- }
- int akhir=0;
- R(i,1,nkandang+1) if(a[nbuka][i] == 0) { akhir=i; break; }
- if( akhir == 0) printf("menyerah\n");
- else{
- RV(i,nbuka,2) {
- if( akhir >1 and a[i-1][akhir-1]==0) {
- steps[i]=akhir;
- akhir-=1;
- } else if(akhir <nkandang and a[i-1][akhir+1]==0) {
- steps[i]=akhir;
- akhir+=1;
- }
- }
- steps[1]=akhir;
- R(i,1,nbuka+1) printf("%d\n", steps[i]);
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement