Submission

Status:

PPP-PPP-PP

Subtask/Task Score:

80/100

Score: 80

User: tull

Problemset: Croissant Express

Language: cpp

Time: 0.003 second

Submitted On: 2026-06-01 00:56:54

#pragma GCC optimize("O3,unroll-loops")
#include <bits/stdc++.h>
using namespace std;
#define int long long
#define bp '\n'
#define ld long double
#define vp cout<<'\n';
#define all(A) A.begin(),A.end()
using pii=pair<int,int>;
const int MOD=1e9+7;
const int MNLL=-1e18;
const int MXLL=1e18;
const int N=2e5+10;
const string sans[]={"no","yes"};
signed main(){
    cin.tie(nullptr)->sync_with_stdio(false);
    int n,ml,mr,sum1=0,sum2=1,mx=0,l,r,x;
    cin>>n>>ml>>mr;
    vector<vector<int>>a(n),vst(n,{0,0});
    for(int i=0;i<n;++i){
        cin>>l>>r;
        a[i]={l,r};
    }
    int cur=0,side=0;
    for(int i=0;i<n;++i){
        x=a[i][side];
        if(x<=0)continue;
        vst[i][side]=1;
        //cout<<i<<' '<<side<<'\n';
        sum1+=x;
        sum1%=10007;
        ++cur;
        if(cur==ml){
            ++side;
            side%=2;
            cur=0;
        }
    }
    cur=0,side=1;
    for(int i=0;i<n;++i){
        x=a[i][side];
        if(x<=0)continue;
        //cout<<i<<' '<<side<<'\n';
        vst[i][side]=1;
        sum2*=x;
        sum2%=10007;
        ++cur;
        if(cur==mr){
            ++side;
            side%=2;
            cur=0;
        }
    }
    cur=0;
    for(int i=0;i<n;++i){
        if(vst[i][0]==0){
            ++cur;
        }else{
            cur=0;
        }
        mx=max(mx,cur);
    }
    cur=0;
    for(int i=0;i<n;++i){
        if(vst[i][1]==0){
            ++cur;
        }else{
            cur=0;
        }
        mx=max(mx,cur);
    }
    cout<<sum1<<' '<<sum2<<' '<<mx;
}