Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /* USER: 32pdpu211
- LANG: C++
- TASK: longsumk */
- #include <chrono> //
- using namespace std::chrono; //
- auto start = high_resolution_clock::now(); //
- #include <iostream>
- #include <vector>
- #include <stdio.h>
- using namespace std;
- unsigned int n, k, number, i, j, s, sum, sum2, sum3, readInt();
- vector<unsigned int> days;
- int main() {
- freopen( "longsumk.in", "r", stdin );
- freopen( "longsumk.out", "w", stdout );
- n = readInt();
- k = readInt();
- for (i=0; i < n; i++) // read values and sum
- {
- number = readInt();
- days.push_back(number);
- sum += number;
- }
- if (sum == k) //check sum
- {
- printf("%d\n", n);
- auto stop = high_resolution_clock::now(); //
- auto duration = duration_cast<microseconds>(stop - start);//
- cout << duration.count() << "\n"; //
- return 0;
- }
- else if (sum < k) //check if there's a solution possible
- {
- printf("da0\n");
- auto stop = high_resolution_clock::now(); //
- auto duration = duration_cast<microseconds>(stop - start);//
- cout << duration.count() << "\n"; //
- return 0;
- }
- sum2 = sum;
- for (i=0; i < (n-1); i++) // for every n-ple (diades triades)
- {
- sum2 -= days[n-i-1];
- sum3 = sum2;
- s = n-1-i;
- for (j=0; j < (i+2); j++) // gia kathe sindiasmo
- {
- if (sum3 == k)
- {
- auto stop = high_resolution_clock::now(); //
- auto duration = duration_cast<microseconds>(stop - start);//
- cout << duration.count() << "\n"; //
- printf("%d\n", (n-i-1));
- return 0;
- }
- sum3 -= days[j];
- sum3 += days[s];
- s++;
- }
- }
- auto stop = high_resolution_clock::now(); //
- auto duration = duration_cast<microseconds>(stop - start);//
- cout << duration.count() << "\n"; //
- printf("0\n");
- return 0;
- }
- unsigned int readInt() {
- char c = 0;
- int a = 0;
- while ( c < 33 ) {
- c = getchar();
- }
- while ( c > 33 ) {
- a = a*10 + c - '0';
- c = getchar();
- }
- return a;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement