Cod sursa(job #3181925)
Utilizator | Data | 8 decembrie 2023 13:57:01 | |
---|---|---|---|
Problema | Paduri de multimi disjuncte | Scor | 0 |
Compilator | cpp-64 | Status | done |
Runda | Arhiva educationala | Marime | 0.59 kb |
#include <bits/stdc++.h>
using namespace std;
int n,x,y,S=0;
vector<int>G[100001];
int max0=0,sol[1001],v[1001];
int main(){
cin>>n>>x>>y;
for(int i=1;i<=n;i++){
cin>>v[i]; S+=v[i];
G[v[i]].push_back(i);
}
for(int i=1;i<=n;i++){
int val = 1 + (x * i + y * v[i]);
val%=n;
/// toate elementele de la i+1 care au v[i]
/// sunt schimbate in val
while(!G[val].empty()){
int poz = G[val].back();
if(poz<=i)
break;
}
}
cout<<max0;
return 0;
}