(I3
I109
I9
(dp0
Vagrain.%l
p1
(Vagrain.cpp
p2
S'# include<iostream>\r\n# include<algorithm>\r\n# include<queue>\r\nusing namespace std;\r\n\r\nstruct minmaxk\r\n{\r\n    long long mins;\r\n    long long maxs;\r\n};\r\nlong long del1[10000001];\r\nminmaxk mm[10000001];\r\nint main()\r\n{\r\n    long long n,l,d;\r\n    cin>>n>>l>>d;\r\n    long long x,a,b;\r\n    cin>>x>>a>>b;\r\n    long long p=x,q;\r\n    if(x-0<=d && l-x<=d) {cout<<1<<endl; return 0;}\r\n    \r\n    mm[1].mins=0;\r\n    long long del;\r\n    if(l%d==0) {del=l/d;mm[del].maxs=l; }\r\n    else {del=l/d+1;mm[del].maxs=l;}\r\n    long long del2=del;\r\n    for(long long i=1; i<n; i++)\r\n    {\r\n        q=(p*a+b)%(l+1);\r\n        p=q;\r\n        int nom;\r\n        if(q%d!=0) nom=q/d+1;\r\n        else nom=q/d;\r\n        if(!del1[nom])\r\n        {\r\n            del2--;\r\n            del1[nom]=1;\r\n        }\r\n        //cout<<del2<<endl;\r\n        //cout<<nom<<" "<<q<<" "<<mm[nom].maxs<<endl;\r\n        if(mm[nom].maxs<q) mm[nom].maxs=q;\r\n        if(mm[nom].mins>q || mm[nom].mins==0) mm[nom].mins=q;\r\n        //if(i==26379) cout<<del2<<endl;\r\n        if(del2<2)\r\n        {\r\n            bool f=true;\r\n            for(int j=0; j<del; j++)\r\n            {\r\n                if(mm[j+1].mins-mm[j].maxs>d) {f=false; break;}\r\n            }\r\n            if(f==true) {cout<<i+1<<endl; return 0;}\r\n        }\r\n        \r\n        \r\n    }\r\n    //for(int i=0; i<=l/d+1; i++) cout<<mm[i].mins<<" "<<mm[i].maxs<<endl;\r\n    cout<<-1<<endl;\r\n    return 0;\r\n}'
p3
tp4
stp5
.