제출 #167402

#제출 시각아이디문제언어결과실행 시간메모리
167402NightlightMiners (IOI07_miners)C++14
100 / 100
356 ms1016 KiB
#include<bits/stdc++.h> using namespace std; int n; string s; vector<int>v; int dp[2][4][4][4][4]; int cnt(int m, int b, int f){ int rsm, rsb, rsf; if(m==3) rsm=0; else rsm=1<<m; if(b==3) rsb=0; else rsb=1<<b; if(f==3) rsf=0; else rsf=1<<f; int rs=rsm|rsb|rsf; int cnt=__builtin_popcount(rs); return cnt; } int main(){ scanf("%d", &n); cin>>s; v.resize(n); for(int i=0; i<n; i++){ if(s[i]=='M') v[i]=0; else if(s[i]=='B') v[i]=1; else v[i]=2; } for(int i=n-1; i>=0; i--){ for(int j=0; j<4; j++){ for(int k=0; k<4; k++){ for(int l=0; l<4; l++){ for(int m=0; m<4; m++){ dp[i%2][j][k][l][m]=max(dp[(i+1)%2][k][v[i]][l][m]+cnt(j, k, v[i]), dp[(i+1)%2][j][k][m][v[i]]+cnt(l, m, v[i])); } } } } } printf("%d\n", dp[0][3][3][3][3]); return 0; }

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

miners.cpp: In function 'int main()':
miners.cpp:16:7: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
  scanf("%d", &n);
  ~~~~~^~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...