제출 #1275269

#제출 시각아이디문제언어결과실행 시간메모리
1275269PetrixPaint By Numbers (IOI16_paint)C++20
32 / 100
1 ms348 KiB
#include <iostream> #include "paint.h" #include <vector> using namespace std; #define MOD 1000000007 int dp[200001][101]; int dp1[200001][101]; int pref1[200001]; int pref2[200001]; string solve_puzzle(string s,vector<int> c){ string fina=s;int n=s.size(),m=c.size(),i,j,rasp; dp[0][0]=dp1[n+1][m]=1;s=" "+s; for(i=1;i<=n;i++){ pref1[i]=pref1[i-1]; if(s[i]=='_') pref1[i]++; pref2[i]=pref2[i-1]; if(s[i]=='X') pref2[i]++; } for(i=1;i<=n+1;i++){ for(j=0;j<=m;j++){ if(s[i]!='X'){ dp[i][j]=dp[i-1][j]; if(j && i>c[j-1] && pref1[i-1]==pref1[i-1-c[j-1]]){ dp[i][j]+=dp[i-c[j-1]-1][j-1];dp[i][j]%=MOD; } } } } for(i=n;i;i--){ for(j=0;j<=m;j++){ if(s[i]!='X'){ dp1[i][j]=dp1[i+1][j]; if(j<m && n-i+1>c[j] && pref1[i]==pref1[i+c[j]]){ dp1[i][j]+=dp1[i+c[j]+1][j+1];dp1[i][j]%=MOD; } } } } for(i=1;i<=n;i++){ rasp=0; for(j=0;j<=m;j++) rasp=(rasp+dp[i][j]*dp1[i][j])%MOD; if(!rasp) fina[i-1]='X'; else if(rasp==dp[n+1][m]) fina[i-1]='_'; else fina[i-1]='?'; } return fina; }

컴파일 시 표준 에러 (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...