Submission #830624

#TimeUsernameProblemLanguageResultExecution timeMemory
830624Johann Martian DNA (BOI18_dna)C++14
100 / 100
36 ms4540 KiB
#include<bits/stdc++.h> using namespace std; #define ll long long #define pii pair<int,int> #define vb vector<bool> #define vi vector<int> #define vpii vector<pii> #define vvpii vector<vpii> #define vvi vector<vi> #define tiii tuple<int,int,int> #define vtiii vector<tiii> #define F0R(i, n) for(int i = 0; i < (n); ++i) #define R0F(i, n) for(int i = (n)-1; i >= 0; --i) #define sz(x) ((int)(x).size()) #define all(x) begin(x), end(x) #define nl "\n"; int main() { int N, K, R; scanf("%d %d %d", &N, &K, &R); vi dna(N), cnt(K), con(K, -1); F0R(i,N) scanf("%d", & dna[i]); F0R(i,R) { int a,b; scanf("%d %d", & a, & b); con[a] = b; } int fullfilled = 0; int s = 0, t = 0; int ans = INT_MAX; while (t < N) { if (fullfilled == R) { ans = min(ans, t - s); --cnt[dna[s]]; if (con[dna[s]] != -1 && cnt[dna[s]] == con[dna[s]] - 1) --fullfilled; ++s; } else { ++cnt[dna[t]]; if (con[dna[t]] != -1 && cnt[dna[t]] == con[dna[t]]) ++fullfilled; ++t; } } // s aufrücken while (fullfilled == R) { ans = min(ans, t - s); --cnt[dna[s]]; if (con[dna[s]] != -1 && cnt[dna[s]] == con[dna[s]] - 1) --fullfilled; ++s; } if (ans == INT_MAX) printf("impossible\n"); else printf("%d\n", ans); }

Compilation message (stderr)

dna.cpp: In function 'int main()':
dna.cpp:22:10: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   22 |     scanf("%d %d %d", &N, &K, &R);
      |     ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~
dna.cpp:24:19: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   24 |     F0R(i,N) scanf("%d", & dna[i]);
      |              ~~~~~^~~~~~~~~~~~~~~~
dna.cpp:27:14: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   27 |         scanf("%d %d", & a, & b);
      |         ~~~~~^~~~~~~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...