50 TLE 求助!
查看原帖
50 TLE 求助!
368658
下菜饭楼主2022/10/21 10:38
#include<bits/stdc++.h>
using namespace std;
inline int read(){
	int x=0,y=1;
	char c=getchar();
	while(c<'0'||c>'9'){
		if(c=='-') y=-1;
	 	c=getchar();
	}
	while(c>='0'&&c<='9'){
		x=x*10+c-'0';
		c=getchar(); 
	}
	return x*y;
}
struct Node{
    int k,n;
};
int main(){
	 freopen("P1076.in","r",stdin);
	 freopen("P1076.out","w",stdout);
//	iostream::sync_with_stdio(false);
	int n=read(),m=read();
    Node a[n+5][m+5];
    int sss[n+5];
    for(int i=1;i<=n;i++){
        // int x=read(),y=read();
        int ss=0;
        for(int j=0;j<m;j++){
            a[i][j].k=read(),a[i][j].n=read();
            ss+=a[i][j].k;
        }
        sss[i]=ss;
    }
//    for(int i=1;i<)
    int strat=read();
    int ans=0;
    for(int i=1,j=strat;i<=n;i++){
        // cout << a[i][j].n << ' ';
        ans=(ans+a[i][j].n)%20123;
        int s=a[i][j].k,goal=a[i][j].n;
        s+=sss[i]*(goal/m);
        while(s!=goal){
            j=(j+1)%m;
			s+=a[i][j].k;
//			s+=sss[i];
        }
    }
    cout << ans << endl;
	return 0;
}

2022/10/21 10:38
加载中...