#include <bits/stdc++.h>
#include "message.h"
#include "kanapka.h"
using namespace std;
#define int long long
int NR = NumberOfNodes();
int ID = MyNodeId();
int n = GetN();
void algo() {
	int mi=0, ma=0, suma=0, res=0;
	for( int i=0; i<NR; i++ ) {
		Receive( i );
		int a = GetLL( i );
		int b = GetLL( i );
		int c = GetLL( i );
		int d = GetLL( i );
		//cout << a << " " << b << " " << c << " " << d << "\n";
		suma += a;
		res = min( res, b );
		res = min( res, suma - a + c - ma );
		ma = max( ma, suma - a + d );
		//cout << suma << " " << res << " " << ma << "\n";
		//cout << endl;
	}
	//cout << suma << "\n";
	cout << suma-res;
}
int32_t main() {
	int left = ID*((n-1)/NR+1);
	int right = (ID+1)*((n-1)/NR+1);
	right = min( right, n );
	
	vector<int> v;
	int suma=0;
	int res=0;
	int ma=0;
	int mi=0;
	//cout << " " << ID << "   " << left << " " << right << "   " << n << "\n";
	for( int i=left; i<right; i++ ) {
		v.push_back( GetTaste( i ) );
		suma += v.back();
		res = min( res, suma-ma );
		ma = max( ma, suma );
		mi = min( mi, suma );
	}
	PutLL( 0, suma );
	PutLL( 0, res );
	PutLL( 0, mi );
	PutLL( 0, ma );
	Send( 0 );
	
	if( ID != 0 ) return 0;
	
	algo();
	
	return 0;
}
        | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 | #include <bits/stdc++.h> #include "message.h" #include "kanapka.h" using namespace std; #define int long long int NR = NumberOfNodes(); int ID = MyNodeId(); int n = GetN(); void algo() { int mi=0, ma=0, suma=0, res=0; for( int i=0; i<NR; i++ ) { Receive( i ); int a = GetLL( i ); int b = GetLL( i ); int c = GetLL( i ); int d = GetLL( i ); //cout << a << " " << b << " " << c << " " << d << "\n"; suma += a; res = min( res, b ); res = min( res, suma - a + c - ma ); ma = max( ma, suma - a + d ); //cout << suma << " " << res << " " << ma << "\n"; //cout << endl; } //cout << suma << "\n"; cout << suma-res; } int32_t main() { int left = ID*((n-1)/NR+1); int right = (ID+1)*((n-1)/NR+1); right = min( right, n ); vector<int> v; int suma=0; int res=0; int ma=0; int mi=0; //cout << " " << ID << " " << left << " " << right << " " << n << "\n"; for( int i=left; i<right; i++ ) { v.push_back( GetTaste( i ) ); suma += v.back(); res = min( res, suma-ma ); ma = max( ma, suma ); mi = min( mi, suma ); } PutLL( 0, suma ); PutLL( 0, res ); PutLL( 0, mi ); PutLL( 0, ma ); Send( 0 ); if( ID != 0 ) return 0; algo(); return 0; } | 
 
            
         English
                    English