ログイン
新規登録
AtsuoCoder Petrozavodsk Contest 001
読込中…
Home
Tasks
Clar
Submissions
Standings
提出 24b75a05-399e-4836-8984-131639b37149
コード
#include <bits/stdc++.h> using namespace std; using ll = long long; int main() { int n, m; cin >> n >> m; vector<int> I(m); vector<ll> S(m); for (auto& k : I) cin << k; for (auto& k : S) cin << k; ll best = LLONG_MAX; int l = -2, r = -2, right = 0; ll now = 0; map<int, int> count; for (int left = 0; left < m; left++) { bool out = false; while (count.size() < n || left >= right) { if (right >= m) { out = true; break; } count[I[right]]++; now += S[right]; right += 1; } if (out) break; if (best > now) { best = now; l = left, r = right; } count[I[left]]--; if (count[I[left]] == 0) count.erase(I[left]); now -= S[left]; } cout << l + 1 << ' ' << r + 1 << endl; return 0; }
結果
問題
点数
言語
結果
実行時間
メモリ
F. Sliding
0
C++ (gcc)
IE
0 ms
0 KiB