201909 csp

-1. 小明种苹果

/*
3 3
73 -8 -6 -4
76 -5 -10 -8
80 -6 -15 0

2 2
10 -3 -1
15 -4 0
*/
#include<iostream>
#include<math.h> 
using namespace std;
int n,m;
int main(){
	cin>>n>>m;
	int t=0;
	int k=0;
	int p=0; 
	int a[n][m+1];
	for(int i=0;i<n;i++){
		for(int j=0;j<=m;j++){
			cin>>a[i][j];
			if(j==0) t+=a[i][j]; 			
		}
	}
	for(int i=0;i<n;i++){
		int tmp = 0;
		for(int j=1;j<=m;j++){
			t+=a[i][j];
			tmp+=abs(a[i][j]);
		}
		if(p<tmp){
			p=tmp;
			k = i;
		}
	}
	cout<<t<<" "<<k+1<<" "<<p;;
	return 0;
} 
  • 2.小明种苹果(续)
/*
4
4 74 -7 -12 -5
5 73 -8 -6 59 -4
5 76 -5 -10 60 -2
5 80 -6 -15 59 0

5
4 10 0 9 0
4 10 -2 7 0
2 10 0
4 10 -3 5 0
4 10 -1 8 0
*/

#include<iostream>
#include<vector>
#include<cstring> 
using namespace std;
int n;//苹果的棵树 
int t=0;//全部疏果操作后的苹果总数 
int d=0;//发生苹果掉落的苹果树的棵树 
int e=0;//相邻连续三棵树发生苹果掉落情况的组数 
int main(){
	cin>>n;
	vector<int> v[n];
	int tmp[n];
	memset(tmp,0,sizeof(tmp)); 
	int reverse[n];
	memset(reverse,0,sizeof(reverse)); 
	int flag[n];//标记是否掉落 
	memset(flag,0,sizeof(flag)); 
	//输入 
	for(int i=0;i<n;i++){
		int x;
		cin>>x;
		for(int j=0;j<x;j++){
			int y;
			cin>>y;
			v[i].push_back(y);    	
		}
		tmp[i]+=v[i][0];
	}
	for(int i=0;i<n;i++){
		for(int j=1;j<v[i].size();j++){
			if(v[i][j]<0) {
		    tmp[i]+=v[i][j];
			}else {
				continue;
			}
		}
	}
	for(int i=0;i<n;i++){
		for(int j=v[i].size()-1;j>=0;j--){
			if(v[i][j]<=0) {
		    reverse[i]+=v[i][j];
			}else{
			reverse[i]+=v[i][j];	
			break;
			}	
		}
	}	
	for(int i=0;i<n;i++){
		t+=reverse[i];
		if(reverse[i]!=tmp[i]) {
			d++;flag[i]=1;
			
		}
	}
 
	for(int i=0;i<n;i++){
		if(flag[(i+n-1)%n]==1&&flag[i]==1&&flag[(i+1)%n]==1){
			e++;
		}
	}
	cout<<t<<" "<<d<<" "<<e;
	return 0;
}
posted @ 2021-11-29 20:08  0x3fffffff  阅读(35)  评论(0编辑  收藏  举报