제출 #598700

#제출 시각아이디문제언어결과실행 시간메모리
598700mosiashvililukaAncient Machine (JOI21_ancient_machine)C++17
93 / 100
83 ms14720 KiB
#include<bits/stdc++.h> #include "Anna.h" using namespace std; void Anna(int NN, std::vector<char> SS) { long long a,b,c,d,e,i,j,ii,jj,zx,xc,I,LI=19,J=14,JJ=20; vector <long long> f(100009),dp(600009),g(100009); a=NN; for(i=1; i<=a; i++){ if(SS[i-1]=='X') f[i]=0; if(SS[i-1]=='Y') f[i]=1; if(SS[i-1]=='Z') f[i]=2; } // zx=0; for(i=0; i<(1<<LI); i++){ e=0; for(j=1; j<LI; j++){ jj=j-1; if((i&(1<<jj))!=0&&(i&(1<<j))!=0){ e=1; break; } } if(e==1) continue; zx++;dp[i]=zx; } //cout<<zx<<"\n"; for(i=1; i<=a; i++){ if(f[i]==0){ break; } } I=i; if(I>a) I=0; //if(I==0) Send(0); else Send(1); /*for(j=0; j<JJ; j++){ if((I&(1<<j))!=0) Send(1); else Send(0); }*/ //g[I]=1; c=I; for(j=0; j<JJ; j++){ if((I&(1<<j))!=0) Send(1); else Send(0); } for(i=I+1; i<=a; i++){ if(f[i]==2){ /*if(c<i-1) g[i]=1; c=i;*/ if(f[i+1]!=2) g[i]=1; } } /*for(i=1; i<=a; i++) cout<<g[i]<<" "; cout<<"gend\n";*/ for(i=1; i<=a; i+=LI){ zx=0; for(j=i; j<=min(i+LI-1,a); j++){ if(g[j]==1) zx^=(1<<(j-i)); } c=dp[zx]; for(j=0; j<J; j++){ if((c&(1<<j))!=0) Send(1); else Send(0); } } }
#include<bits/stdc++.h> #include "Bruno.h" using namespace std; namespace { void rem(int q){ Remove(q-1); } } void Bruno(int NN, int LL, std::vector<int> AA) { int a,b,c,d,e,i,j,ii,jj,zx,xc,L,I,LI=19,J=14,JJ=20; vector <int> f(100009),Adp(100009); a=NN;L=LL; /*for(i=1; i<=a; i++){ f[i]=AA[i-1]; }*/ I=0; for(j=0; j<JJ; j++){ if(AA[j]==1) I+=(1<<j); } if(I==0){ for(i=1; i<=a; i++) rem(i); return; } for(j=JJ; j<L; j++){ AA[j-(JJ-1)]=AA[j]; } L-=(JJ-1); zx=0; for(i=0; i<(1<<LI); i++){ e=0; for(j=1; j<LI; j++){ jj=j-1; if((i&(1<<jj))!=0&&(i&(1<<j))!=0){ e=1; break; } } if(e==1) continue; zx++;//dp[i]=zx; Adp[zx]=i; } /*for(i=1; i<L; i++) cout<<AA[i]<<" "; cout<<"\n";*/ int id=1; for(i=1; i<L; i+=J){ zx=0; for(j=i; j<=min(i+J-1,L-1); j++){ if(AA[j]==1){ zx+=(1<<(j-i)); } } c=Adp[zx]; for(j=id; j<=min(id+LI-1,a); j++){ d=j-id; f[j]=(c&(1<<d)); if(f[j]!=0) f[j]=1; } id+=LI; } /*for(i=1; i<=a; i++) cout<<f[i]<<" "; cout<<"\n";*/ f[I]=1; //solve for(i=1; i<=a; i++){ if(f[i]==1){ break; } rem(i); } if(i>a) return; I=i;ii=i; for(i=I+1; i<=a; i++){ if(f[i]==1){ for(j=i-1; j>ii; j--) rem(j); rem(i); ii=i; continue; } } for(i=a; i>ii; i--) rem(i); rem(I); }

컴파일 시 표준 에러 (stderr) 메시지

Anna.cpp: In function 'void Anna(int, std::vector<char>)':
Anna.cpp:5:17: warning: unused variable 'b' [-Wunused-variable]
    5 |     long long a,b,c,d,e,i,j,ii,jj,zx,xc,I,LI=19,J=14,JJ=20;
      |                 ^
Anna.cpp:5:21: warning: unused variable 'd' [-Wunused-variable]
    5 |     long long a,b,c,d,e,i,j,ii,jj,zx,xc,I,LI=19,J=14,JJ=20;
      |                     ^
Anna.cpp:5:29: warning: unused variable 'ii' [-Wunused-variable]
    5 |     long long a,b,c,d,e,i,j,ii,jj,zx,xc,I,LI=19,J=14,JJ=20;
      |                             ^~
Anna.cpp:5:38: warning: unused variable 'xc' [-Wunused-variable]
    5 |     long long a,b,c,d,e,i,j,ii,jj,zx,xc,I,LI=19,J=14,JJ=20;
      |                                      ^~

Bruno.cpp: In function 'void Bruno(int, int, std::vector<int>)':
Bruno.cpp:10:11: warning: unused variable 'b' [-Wunused-variable]
   10 |     int a,b,c,d,e,i,j,ii,jj,zx,xc,L,I,LI=19,J=14,JJ=20;
      |           ^
Bruno.cpp:10:32: warning: unused variable 'xc' [-Wunused-variable]
   10 |     int a,b,c,d,e,i,j,ii,jj,zx,xc,L,I,LI=19,J=14,JJ=20;
      |                                ^~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...