整数の配列 A が与えられた場合、特定の位置 j で、 A の i=0 から i=j までの A[j] が何回発生するかを調べようとしています。以下のような解決策を考案しました
map<int,int> CF[400005];
for(int i=0;i<n;++i)
{
cin>>A[i];
if(i!=0)
CF[i-1] = CF[i];
++CF[i][A[i]];
}
ログイン時間内に各クエリに回答できるよりも。しかし、この手順では大量のメモリが使用されます。より少ないメモリを使用してそれを行う方法はありますか?
より明確にするために、私が解決しようとしている問題を見ることができますhttp://codeforces.com/contest/190/problem/D