#include <iostream>
#include <fstream>
//#define TESTY
using namespace std;
#define MAX_RUND 1000
int main()
{
long zmiany[ MAX_RUND];
long rundy[ MAX_RUND];
int n;
#ifdef TESTY
ifstream plik;
plik.open("/home/alefzero/cpp/olimpic/punktyrankingowe/ex.in");
// plik.open("/home/alefzero/cpp/olimpic/punktyrankingowe/ex2.in");
// plik.open("/home/alefzero/cpp/olimpic/punktyrankingowe/ex3.in");
// plik.open("/home/alefzero/cpp/olimpic/punktyrankingowe/ex4.in");
plik >> n;
#endif // TESTY
#ifndef TESTY
cin >> n;
#endif // TESTY
for( int i = 0; i < n; i ++)
{
long k;
#ifdef TESTY
plik >> k;
#endif // TESTY
#ifndef TESTY
cin >> k;
#endif // TESTY
zmiany[ i ] = k;
// cout << zmiany[ i ] << ' ';
}
// cout << endl;
for( int i = n - 1; i >=0; i -- )
{
if( i == 0)
rundy[ i ] = zmiany[ 0 ];
else
rundy[ i ] = zmiany[ i ] - zmiany[ i - 1] ;
}
bool warunek;
warunek = true;
for( long i = 1; i <= n; i ++)
{
long mx = -100000000;
for( long j = 0; j < n - i + 1; j ++)
{
long sum = 0;
for( long k = j; k < j + i; k ++ )
{
sum += rundy[ k ];
}
if( sum > mx )
mx = sum;
}
if( mx != zmiany[ i - 1])
warunek = false;
// cout << mx << ' ';
}
// cout << "\n\n";
if( warunek == false )
cout << "NIE\n";
else
{
cout << "TAK\n";
cout << n << '\n';
for( int i = 0; i < n; i ++ )
{
cout << rundy[ i ] << ' ';
}
cout << endl;
}
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 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 | #include <iostream> #include <fstream> //#define TESTY using namespace std; #define MAX_RUND 1000 int main() { long zmiany[ MAX_RUND]; long rundy[ MAX_RUND]; int n; #ifdef TESTY ifstream plik; plik.open("/home/alefzero/cpp/olimpic/punktyrankingowe/ex.in"); // plik.open("/home/alefzero/cpp/olimpic/punktyrankingowe/ex2.in"); // plik.open("/home/alefzero/cpp/olimpic/punktyrankingowe/ex3.in"); // plik.open("/home/alefzero/cpp/olimpic/punktyrankingowe/ex4.in"); plik >> n; #endif // TESTY #ifndef TESTY cin >> n; #endif // TESTY for( int i = 0; i < n; i ++) { long k; #ifdef TESTY plik >> k; #endif // TESTY #ifndef TESTY cin >> k; #endif // TESTY zmiany[ i ] = k; // cout << zmiany[ i ] << ' '; } // cout << endl; for( int i = n - 1; i >=0; i -- ) { if( i == 0) rundy[ i ] = zmiany[ 0 ]; else rundy[ i ] = zmiany[ i ] - zmiany[ i - 1] ; } bool warunek; warunek = true; for( long i = 1; i <= n; i ++) { long mx = -100000000; for( long j = 0; j < n - i + 1; j ++) { long sum = 0; for( long k = j; k < j + i; k ++ ) { sum += rundy[ k ]; } if( sum > mx ) mx = sum; } if( mx != zmiany[ i - 1]) warunek = false; // cout << mx << ' '; } // cout << "\n\n"; if( warunek == false ) cout << "NIE\n"; else { cout << "TAK\n"; cout << n << '\n'; for( int i = 0; i < n; i ++ ) { cout << rundy[ i ] << ' '; } cout << endl; } return 0; } |
English