제출 #743166

#제출 시각아이디문제언어결과실행 시간메모리
743166tolbi벽 칠하기 (APIO20_paint)C++17
40 / 100
1594 ms421636 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<bool> valid(N,0); vector<vector<int>> st(K); vector<set<int>> kk(M); for (int i = 0; i < N; i++){ st[C[i]].push_back(i); } for (int i = 0; i < M; i++){ for (int j = 0; j < B[i].size(); j++){ int col = B[i][j]; for (int k = 0; k < st[col].size(); k++){ int pos = st[col][k]; kk[(((pos-i)%M)+M)%M].insert(pos); } } } for (int i = 0; i < M; i++){ int streak = 0; auto it = kk[i].begin(); while (it!=kk[i].end()){ if (it==kk[i].begin()) streak = 1; else { it--; int a = *it; it++; if ((*it)-a!=1){ streak=1; } else streak++; } if (streak>=M){ valid[(*it)-M+1]=true; } it++; } } int32_t ans = 1, r = M-1, mava = M-1; if (!valid[0]) return -1; for (int i = 1; i < N; i++){ if (valid[i]) mava=i+M-1; if (i>r){ if (mava==r) return -1; r=mava; 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

컴파일 시 표준 에러 (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++){
      |                   ~~^~~~~~~~~~~~~
paint.cpp:52:22: warning: comparison of integer expressions of different signedness: 'long long int' and 'std::vector<long long int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   52 |    for (int k = 0; k < st[col].size(); k++){
      |                    ~~^~~~~~~~~~~~~~~~
#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...