Submission #1197485

#TimeUsernameProblemLanguageResultExecution timeMemory
1197485YassirSalamaPaint By Numbers (IOI16_paint)C++20
32 / 100
0 ms328 KiB
#include "paint.h" #include<bits/stdc++.h> using namespace std; #define ll long long #ifdef IOI template<typename T> void dbg(const T& t){ cout<<t<<endl; } template<typename T,typename... Args> void dbg(const T& t,const Args&... args){ cout<<t<<" , "; dbg(args...); } #define dbg(...) cout<<'('<<#__VA_ARGS__<<") : ";dbg(__VA_ARGS__); #else #define dbg(...) 1337; #endif // string solve_puzzle(string s, vector<int> c) { // int n = s.length(); // int a = c[0]; // int l = -1e9; // int r = 1e9; // string ans(n,'X'); // for(int i =0;i<n;i++){ // if(i>=a||i<n-a){ // ans[i]='?'; // } // } // return ans; // } string solve_puzzle(string s, vector<int> c) { int n = s.length(); int k = c.size(); k--; ll pref[k]; memset(pref,0,sizeof(pref)); for(int i =0;i<k;i++){ pref[i] = c[i]; pref[i]++; if(i) pref[i]+=pref[i-1]; } string S(n,'?'); int t = n; ll arr[n+1]; while(k>=0){ memset(arr,0,sizeof(arr)); ll a = c[k]; ll s = (k?pref[k-1]:0); ll l = s; ll r = t-a; dbg(l,r) if(r-l+1<=a){ for(int j = l;j<=r;j++){ arr[j]++; arr[min((ll)n,j+a)]--; } for(int i=1;i<n;i++) arr[i]+=arr[i-1]; ll x = *max_element(arr,arr+n+1); for(int j=l;j<min((ll)n,r+a);j++){ if(arr[j]==x){ S[j]='X'; } } if(l==r){ if(r) S[r-1]='_'; } } t = r-1, k--; } return S; }

Compilation message (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...