Advertisement
Guest User

Untitled

a guest
Feb 18th, 2020
196
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.99 KB | None | 0 0
  1. /* USER: 32pdpu211
  2. LANG: C++
  3. TASK: longsumk */
  4. #include <chrono> //
  5. using namespace std::chrono; //
  6. auto start = high_resolution_clock::now(); //
  7. #include <iostream>
  8. #include <vector>
  9. #include <stdio.h>
  10. using namespace std;
  11.  
  12. unsigned int n, k, number, i, j, s, sum, sum2, sum3, readInt();
  13. vector<unsigned int> days;
  14.  
  15.  
  16. int main() {
  17.   freopen( "longsumk.in", "r", stdin );
  18.   freopen( "longsumk.out", "w", stdout );
  19.  
  20.   n = readInt();
  21.   k = readInt();
  22.  
  23.   for (i=0; i < n; i++) // read values and sum
  24.   {
  25.     number = readInt();
  26.     days.push_back(number);
  27.     sum += number;
  28.   }
  29.  
  30.   if (sum == k) //check sum
  31.   {
  32.     printf("%d\n", n);
  33.     auto stop = high_resolution_clock::now(); //
  34.     auto duration = duration_cast<microseconds>(stop - start);//
  35.     cout << duration.count() << "\n"; //
  36.     return 0;
  37.   }
  38.  
  39.   else if (sum < k) //check if there's a solution possible
  40.   {
  41.     printf("da0\n");
  42.     auto stop = high_resolution_clock::now(); //
  43.     auto duration = duration_cast<microseconds>(stop - start);//
  44.     cout << duration.count() << "\n"; //
  45.     return 0;
  46.   }
  47.  
  48.   sum2 = sum;
  49.  
  50.   for (i=0; i < (n-1); i++) // for every n-ple (diades triades)
  51.   {
  52.     sum2 -= days[n-i-1];
  53.     sum3 = sum2;
  54.     s = n-1-i;
  55.  
  56.     for (j=0; j < (i+2); j++) // gia kathe sindiasmo
  57.     {
  58.       if (sum3 == k)
  59.       {
  60.         auto stop = high_resolution_clock::now(); //
  61.         auto duration = duration_cast<microseconds>(stop - start);//
  62.         cout << duration.count() << "\n"; //
  63.         printf("%d\n", (n-i-1));
  64.         return 0;
  65.       }
  66.       sum3 -= days[j];
  67.       sum3 += days[s];
  68.       s++;
  69.     }
  70.   }
  71.  
  72.   auto stop = high_resolution_clock::now(); //
  73.   auto duration = duration_cast<microseconds>(stop - start);//
  74.   cout << duration.count() << "\n"; //
  75.   printf("0\n");
  76.   return 0;
  77. }
  78.  
  79. unsigned int readInt() {
  80.   char c = 0;
  81.   int a = 0;
  82.   while ( c < 33 ) {
  83.     c = getchar();
  84.   }
  85.   while ( c > 33 ) {
  86.     a = a*10 + c - '0';
  87.     c = getchar();
  88.   }
  89.   return a;
  90. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement