제출 #943352

#제출 시각아이디문제언어결과실행 시간메모리
943352Nika533Paint By Numbers (IOI16_paint)C++14
59 / 100
1 ms600 KiB
#pragma GCC diagnostic warning "-std=c++11" #include <bits/stdc++.h> #include "paint.h" #define pb push_back #define MOD 1000000007 #define flush fflush(stdout) #define all(x) (x).begin(),(x).end() #define allr(x) (x).rbegin(), (x).rend() #define pii pair<int,int> using namespace std; string solve_puzzle(string s, vector<int> c) { int n=s.size(); int k=c.size(); int pref[k+5],suf[k+5]; suf[k]=1e9; int ind; ind=-1; for (int i=0; i<c.size(); i++) { int last=ind; ind++; for (ind; ind<n; ind++) { if (s[ind]=='_') last=ind; if (ind-last>=c[i]) break; } pref[i]=ind; ind++; } ind=n; for (int i=c.size()-1; i>=0; i--) { int last=ind; ind--; for (ind; ind>=0; ind--) { if (s[ind]=='_') last=ind; if (last-ind>=c[i]) break; } suf[i]=ind; ind--; } string ans=s; for (int i=0; i<n; i++) { bool canBeWhite=0,canBeBlack=0; // can be '_' if (suf[0]>i) canBeWhite=1; for (int j=0; j<k; j++) { if (pref[j]<i && i<suf[j+1]) canBeWhite=1; } // can be 'X' int lb=-1,rb=n; for (int j=i; j>=0; j--) { if (s[j]=='_') { lb=j; break; } } for (int j=i; j<n; j++) { if (s[j]=='_') { rb=j; break; } } for (int j=0; j<k; j++) { for (int o=0; o<c[j]; o++) { if ((i-o)<=lb || rb<=(i+c[j]-o-1)) continue; int num1=(i-o)-1,num2=(i+c[j]-o-1)+1; if ((j==0 || pref[j-1]<num1) && (j==k-1 || suf[j+1]>num2)) canBeBlack=1; } } if (canBeBlack==1 && canBeWhite==1) ans[i]='?'; else if (canBeBlack==1) ans[i]='X'; else ans[i]='_'; } return ans; }

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

paint.cpp:1:32: warning: '-std=c++11' is not an option that controls warnings [-Wpragmas]
    1 | #pragma GCC diagnostic warning "-std=c++11"
      |                                ^~~~~~~~~~~~
paint.cpp: In function 'std::string solve_puzzle(std::string, std::vector<int>)':
paint.cpp:17:19: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   17 |    for (int i=0; i<c.size(); i++) {
      |                  ~^~~~~~~~~
paint.cpp:19:10: warning: statement has no effect [-Wunused-value]
   19 |     for (ind; ind<n; ind++) {
      |          ^~~
paint.cpp:29:8: warning: statement has no effect [-Wunused-value]
   29 |   for (ind; ind>=0; ind--) {
      |        ^~~
#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...