제출 #1204508

#제출 시각아이디문제언어결과실행 시간메모리
1204508PlayVoltzPaint By Numbers (IOI16_paint)C++20
0 / 100
0 ms320 KiB
#include "paint.h" #include <bits/stdc++.h> using namespace std; string solve_puzzle(string s, vector<int> vect){ int n=s.size(), k=vect.size(); string ans(n, '.'); s = '.'+s; vect.insert(vect.begin(), 0); vector<int> psum(n+1, 0); for (int i=1; i<=n; ++i)psum[i]=psum[i-1]+(s[i]=='_'); vector<vector<int> > dp(n+1, vector<int>(k+1, 0)); for (int i=0; i<=n; ++i)if (s[i]!='X')dp[i][0]=1; for (int i=1; i<=n; ++i)for (int j=1; j<=k; ++j){ if (s[i]!='X'&&dp[i-1][j])dp[i][j]|=1; if (j==1&&vect[j]<=i&&psum[i]==psum[i-vect[j]]&&dp[i-vect[j]][j-1])dp[i][j]|=2; if (j!=1&&vect[j]<i&&psum[i]==psum[i-vect[j]]&&s[i-vect[j]]!='X'&&dp[i-vect[j]-1][j-1])dp[i][j]|=2; } int i=n, j=k; while (i){ if (dp[i][j]&2){ for (int p=i; p>i-vect[j]; --p)ans[p-1]='X'; ans[i-vect[j]-1]='_'; i=i-vect[j]-1, --j; } else ans[i-1]='_', --i; } return ans; }

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

paint.h:1:9: warning: #pragma once in main file
    1 | #pragma once
      |         ^~~~
paint_c.h:1:9: warning: #pragma once in main file
    1 | #pragma once
      |         ^~~~
#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...