Submission #433569

#TimeUsernameProblemLanguageResultExecution timeMemory
433569Mohammed_AtalahStove (JOI18_stove)C++17
100 / 100
23 ms2380 KiB
/////home/mohammed/.config/sublime-text-3/Packages/User /*input */ #include <bits/stdc++.h> #include <iostream> #include <vector> #include <string> #include <algorithm> #include <numeric> #include <math.h> #include <sstream> #include <iterator> #include <cstdlib> #include <unordered_map> #include <map> #include <list> #include <set> using namespace std; using bin = std::bitset<8>; #define endl ("\n") #define pi (3.141592653589) #define mod 1000000007 #define int int64_t #define float double #define ll long long #define pb push_back #define mp make_pair #define ff first #define ss second #define all(c) c.begin(), c.end() #define min3(a, b, c) min({a,b,c}) #define max3(a, b, c) max({a,b,c}) #define min4(a, b, c, d) min({a,b,c,d}) #define max4(a, b, c, d) max({a,b,c,d}) #define rrep(i, n) for(int i=n-1;i>=0;i--) #define rep(i,n) for(int i=0;i<n;i++) #define fast ios_base::sync_with_stdio(false), cin.tie(nullptr), cout.tie(nullptr) #define ld long double #define scanArray(a,n) for(int i = 0; i < n; i++){cin >> a[i];} #define coutArray(a,n) for(int i = 0; i < n; i++){cout << a[i] << " ";};cout << endl; #define input(type, n) type n; cin>>n; struct debugger { template<typename T> debugger& operator , (const T& v) { cerr << v << " "; return *this; } } dbg; bool check_key(map<int, int> m, int key) { if (m.find(key) == m.end()) return false; return true; } vector<int> SieveOfEratosthenes(int n) { bool prime[n + 1]; memset(prime, true, sizeof(prime)); vector<int> res; for (int p = 2; p * p <= n; p++) { if (prime[p] == true) { for (int i = p * p; i <= n; i += p) prime[i] = false; } } for (int p = 2; p <= n; p++) if (prime[p]) res.push_back(p); //cout << p << " "; return res; } // function to convert decimal to binary bin decToBinary(int n) { // array to store binary number int binaryNum[32]; // counter for binary array int i = 0; while (n > 0) { // storing remainder in binary array binaryNum[i] = n % 2; n = n / 2; i++; } string x = ""; // printing binary array in reverse order for (int j = i - 1; j >= 0; j--) { x += to_string(binaryNum[j]); } bin result{x}; return result; } // for example: // bin result = decToBinary(2); // bin result2 = decToBinary(10); // bin z = result xor result2; // cout << z; // return 0; int convertBinaryToDecimal(long long n) { int decimalNumber = 0, i = 0, remainder; while (n != 0) { remainder = n % 10; n /= 10; decimalNumber += remainder * pow(2, i); ++i; } return decimalNumber; } int factorial(int n) { long long res = 1; for (int i = 1; i <= n; i++) { res = ((res * i) % mod + mod) % mod ; } return res; } int32_t main() { fast; input(int, n); input(int, k); int total_matches = 0; int total_fuel = 0; int last; vector<int> dis; rep(i, n) { input(int, x); if (i == 0) { total_fuel++; total_matches++; last = x; continue; } if (x - 1 == last) { total_fuel++; last = x; } else { total_fuel++; dis.pb(x - (last + 1)); total_matches++; last = x; } } if (total_matches <= k) { cout << total_fuel << endl; return 0; } sort(dis.begin(), dis.end()); for (int i = 0; i < (total_matches - k); i++) { total_fuel += dis[i]; } cout << total_fuel << endl; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...