直接莽,代码如下:
#include<bits/stdc++.h>
#include<iostream>
#include<string.h>
using namespace std;
int a[1001][1001];
int leave[1001];
int flag[1001];
int lastpositive[1001];
int main(){
int N,m[1000],los=0,sum=0,remeber,D=0,E=0;
int b[10];
cin>>N;
for(int i=0;i<N;i++){
cin>>m[i];
flag[i]=0;
for(int j=0;j<m[i];j++)
cin>>a[i][j];
}
for(int i=0;i<N;i++){
los=0;
for(int j=m[i]-1;j>=0;j--){
if(a[i][j]<=0){
los+=a[i][j];
}
else{
remeber=a[i][j];
leave[i]=remeber+los;
lastpositive[i]=j;
// printf("%d ",lastpositive[i]);
break;
}
}
}
for(int i=0;i<N;i++)
sum+=leave[i];
for(int i=0;i<N;i++){
int begin=a[i][0];
for(int j=1;j<=lastpositive[i];j++){
if(a[i][j]<=0){
begin+=a[i][j];
continue;
}
if(begin!=a[i][j]){
flag[i]=1;
// printf("haha");
break;
}
}
}
for(int i=0;i<N;i++)
if(flag[i]==1)
D++;
if(N<3){
cout<<sum<<" "<<D<<" "<<0;
}
else {
for(int i=0;i<N;i++){
if(flag[i%N]==1&&flag[(i+1)%N]==1&&flag[(i+2)%N]==1)
E++;
}
cout<<sum<<" "<<D<<" "<<E;
}
return 0;
}
由于也是第一次接触CSP,代码有疑问的地方可以随时联系我,咱们一块交流。