ログイン
新規登録
AtsuoCoder Petrozavodsk Contest 001
読込中…
Home
Tasks
Clar
Submissions
Standings
提出 416746e6-6c5f-4a1b-8246-cfb7f42f3359
コード
#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
150
C++
AC
293 ms
16044 KiB