Submission #742944

#TimeUsernameProblemLanguageResultExecution timeMemory
742944tolbiPainting Walls (APIO20_paint)C++17
0 / 100
1 ms340 KiB
#pragma optimize("Bismillahirrahmanirrahim") //█▀█─█──█──█▀█─█─█ //█▄█─█──█──█▄█─█■█ //█─█─█▄─█▄─█─█─█─█ //Allahuekber //ahmet23 orz... //Sani buyuk Osman Pasa Plevneden cikmam diyor. //FatihSultanMehmedHan //YavuzSultanSelimHan //AbdulhamidHan #define author tolbi #include <bits/stdc++.h> using namespace std; template<typename X, typename Y> istream& operator>>(istream& in, pair<X,Y> &pr) {return in>>pr.first>>pr.second;} template<typename X, typename Y> ostream& operator<<(ostream& os, pair<X,Y> pr) {return os<<pr.first<<" "<<pr.second;} template<typename X, typename Y> pair<X,Y> operator+(pair<X,Y> a, pair<X,Y> b) {pair<X,Y> c; c.first=a.first+b.first,c.second=a.second+b.second;return c;} template<typename X, typename Y> pair<X,Y> operator-(pair<X,Y> a, pair<X,Y> b) {pair<X,Y> c; c.first=a.first-b.first,c.second=a.second-b.second;return c;} template<typename X, typename Y> void operator+=(pair<X,Y> &a, pair<X,Y> b){a.first+=b.first,a.second+=b.second;} template<typename X, typename Y> void operator-=(pair<X,Y> &a, pair<X,Y> b){a.first-=b.first,a.second-=b.second;} template<typename X> istream& operator>>(istream& in, vector<X> &arr) {for(auto &it : arr) in>>it; return in;} template<typename X> ostream& operator<<(ostream& os, vector<X> arr) {for(auto &it : arr) os<<it<<" "; return os;} template<typename X, size_t Y> istream& operator>>(istream& in, array<X,Y> &arr) {for(auto &it : arr) in>>it; return in;} template<typename X, size_t Y> ostream& operator<<(ostream& os, array<X,Y> arr) {for(auto &it : arr) os<<it<<" "; return os;} #define int long long #define endl '\n' #define vint(x) vector<int> x #define deci(x) int x;cin>>x; #define decstr(x) string x;cin>>x; #define cinarr(x) for (auto &it : x) cin>>it; #define coutarr(x) for (auto &it : x) cout<<it<<" ";cout<<endl; #define sortarr(x) sort(x.begin(),x.end()) #define sortrarr(x) sort(x.rbegin(),x.rend()) #define det(x) cout<<"NO\0YES"+x*3<<endl; #define INF LONG_LONG_MAX #define rev(x) reverse(x.begin(),x.end()); #define ios ios::sync_with_stdio(0);cin.tie(0);cout.tie(0); #define tol(bi) (1LL<<((int)(bi))) const int MOD = 1e9+7; mt19937 ayahya(chrono::high_resolution_clock().now().time_since_epoch().count()); #include "paint.h" int32_t minimumInstructions(int32_t N, int32_t M, int32_t K, vector<int32_t> C, vector<int32_t> A, vector<vector<int32_t>> B) { vector<map<int,int>> mp(N); vector<int> mava(N,0); vector<set<int>> st(K); for (int i = 0; i < N; i++){ st[C[i]].insert(i); } for (int i = 0; i < M; i++){ for (int j = 0; j < B[i].size(); j++){ int col = B[i][j]; auto it = st[col].begin(); while (it!=st[col].end()){ int pos = *it; mp[pos][i]++; for (int k = 0; k < M && pos-k>=0; k++){ mp[pos-k][(i-k+M)%M]++; mava[pos-k]=max(mava[pos-k],mp[pos-k][(i-k+M)%M]); } it++; } } } int32_t ans = 1, r = M-1, mavava = M-1; if (mava[0]<M) return -1; for (int i = 1; i < N; i++){ if (mava[i]>=M) mavava=i+M-1; if (i>r){ if (mavava==r) return -1; r=mavava; ans++; } } return ans; } #ifdef tolbi int32_t main() { int32_t N, M, K; assert(3 == scanf("%d %d %d", &N, &M, &K)); vector<int32_t> C(N); for (int32_t i = 0; i < N; ++i) { assert(1 == scanf("%d", &C[i])); } vector<int32_t> A(M); vector<vector<int32_t>> B(M); for (int32_t i = 0; i < M; ++i) { assert(1 == scanf("%d", &A[i])); B[i].resize(A[i]); for (int32_t j = 0; j < A[i]; ++j) { assert(1 == scanf("%d", &B[i][j])); } } int32_t minimum_instructions = minimumInstructions(N, M, K, C, A, B); printf("%d\n", minimum_instructions); return 0; } #endif

Compilation message (stderr)

paint.cpp:1: warning: ignoring '#pragma optimize ' [-Wunknown-pragmas]
    1 | #pragma optimize("Bismillahirrahmanirrahim")
      | 
paint.cpp: In function 'int32_t minimumInstructions(int32_t, int32_t, int32_t, std::vector<int>, std::vector<int>, std::vector<std::vector<int> >)':
paint.cpp:50:21: warning: comparison of integer expressions of different signedness: 'long long int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   50 |   for (int j = 0; j < B[i].size(); j++){
      |                   ~~^~~~~~~~~~~~~
#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...