제출 #1291707

#제출 시각아이디문제언어결과실행 시간메모리
12917071minhtaoStove (JOI18_stove)C++20
0 / 100
1 ms568 KiB
//LAN 1 SAI LOGIC SEGMENT TREE //LAN 2 THIEU MOD //LAN 3 MOD SAI //LAN 4 NHAN RA PHAI DUNG NGHICH MODULE THAY CHO PHEP CHIA //... #include <bits/stdc++.h> #ifndef DEBUG_TEMPLATE_CPP #define DEBUG_TEMPLATE_CPP #include <bits/stdc++.h> // #define cerr cout namespace __DEBUG_UTIL__ { using namespace std; /* Primitive Datatypes Print */ void print(const char *x) { cerr << x; } void print(bool x) { cerr << (x ? "T" : "F"); } void print(char x) { cerr << '\'' << x << '\''; } void print(signed short int x) { cerr << x; } void print(unsigned short int x) { cerr << x; } void print(signed int x) { cerr << x; } void print(unsigned int x) { cerr << x; } void print(signed long int x) { cerr << x; } void print(unsigned long int x) { cerr << x; } void print(signed long long int x) { cerr << x; } void print(unsigned long long int x) { cerr << x; } void print(float x) { cerr << x; } void print(double x) { cerr << x; } void print(long double x) { cerr << x; } void print(string x) { cerr << '\"' << x << '\"'; } template <size_t N> void print(bitset<N> x) { cerr << x; } void print(vector<bool> v) { /* Overloaded this because stl optimizes vector<bool> by using _Bit_reference instead of bool to conserve space. */ int f = 0; cerr << '{'; for (auto &&i : v) cerr << (f++ ? "," : "") << (i ? "T" : "F"); cerr << "}"; } /* Templates Declarations to support nested datatypes */ template <typename T> void print(T &&x); template <typename T> void print(vector<vector<T>> mat); template <typename T, size_t N, size_t M> void print(T (&mat)[N][M]); template <typename F, typename S> void print(pair<F, S> x); template <typename T, size_t N> struct Tuple; template <typename T> struct Tuple<T, 1>; template <typename... Args> void print(tuple<Args...> t); template <typename... T> void print(priority_queue<T...> pq); template <typename T> void print(stack<T> st); template <typename T> void print(queue<T> q); /* Template Datatypes Definitions */ template <typename T> void print(T &&x) { /* This works for every container that supports range-based loop i.e. vector, set, map, oset, omap, dequeue */ int f = 0; cerr << '{'; for (auto &&i : x) cerr << (f++ ? "," : ""), print(i); cerr << "}"; } template <typename T> void print(vector<vector<T>> mat) { int f = 0; cerr << "\n~~~~~\n"; for (auto &&i : mat) { cerr << setw(2) << left << f++, print(i), cerr << "\n"; } cerr << "~~~~~\n"; } template <typename T, size_t N, size_t M> void print(T (&mat)[N][M]) { int f = 0; cerr << "\n~~~~~\n"; for (auto &&i : mat) { cerr << setw(2) << left << f++, print(i), cerr << "\n"; } cerr << "~~~~~\n"; } template <typename F, typename S> void print(pair<F, S> x) { cerr << '('; print(x.first); cerr << ','; print(x.second); cerr << ')'; } template <typename T, size_t N> struct Tuple { static void printTuple(T t) { Tuple<T, N - 1>::printTuple(t); cerr << ",", print(get<N - 1>(t)); } }; template <typename T> struct Tuple<T, 1> { static void printTuple(T t) { print(get<0>(t)); } }; template <typename... Args> void print(tuple<Args...> t) { cerr << "("; Tuple<decltype(t), sizeof...(Args)>::printTuple(t); cerr << ")"; } template <typename... T> void print(priority_queue<T...> pq) { int f = 0; cerr << '{'; while (!pq.empty()) cerr << (f++ ? "," : ""), print(pq.top()), pq.pop(); cerr << "}"; } template <typename T> void print(stack<T> st) { int f = 0; cerr << '{'; while (!st.empty()) cerr << (f++ ? "," : ""), print(st.top()), st.pop(); cerr << "}"; } template <typename T> void print(queue<T> q) { int f = 0; cerr << '{'; while (!q.empty()) cerr << (f++ ? "," : ""), print(q.front()), q.pop(); cerr << "}"; } /* Printer functions */ void printer(const char *) {} /* Base Recursive */ template <typename T, typename... V> void printer(const char *names, T &&head, V &&...tail) { /* Using && to capture both lvalues and rvalues */ int i = 0; for (size_t bracket = 0; names[i] != '\0' and (names[i] != ',' or bracket != 0); i++) if (names[i] == '(' or names[i] == '<' or names[i] == '{') bracket++; else if (names[i] == ')' or names[i] == '>' or names[i] == '}') bracket--; cerr.write(names, i) << " = "; print(head); if (sizeof...(tail)) cerr << " ||", printer(names + i + 1, tail...); else cerr << "]\n"; } /* PrinterArr */ void printerArr(const char *) {} /* Base Recursive */ template <typename T, typename... V> void printerArr(const char *names, T arr[], size_t N, V... tail) { size_t ind = 0; for (; names[ind] and names[ind] != ','; ind++) cerr << names[ind]; for (ind++; names[ind] and names[ind] != ','; ind++) ; cerr << " = {"; for (size_t i = 0; i < N; i++) cerr << (i ? "," : ""), print(arr[i]); cerr << "}"; if (sizeof...(tail)) cerr << " ||", printerArr(names + ind + 1, tail...); else cerr << "]\n"; } } #ifndef ONLINE_JUDGE #define debug(...) std::cerr << __LINE__ << ": [", __DEBUG_UTIL__::printer(#__VA_ARGS__, __VA_ARGS__) #define debugArr(...) std::cerr << __LINE__ << ": [", __DEBUG_UTIL__::printerArr(#__VA_ARGS__, __VA_ARGS__) #else #define debug(...) #define debugArr(...) #endif #endif #define endl '\n' #define all(x) x.begin(),x.end() #define FOR(i,a,b) for(int i=(a);i<=(b);i++) #define FORD(i,a,b) for(int i=(a);i>=(b);i--) #define fi first #define se second #define int long long #define fi first #define se second #define mid(l,r) ((l + r) >> 1) #define left(id) (id << 1) #define right(id) ((id << 1) | 1) #define openfile(TASK) if (fopen(TASK".inp","r"))\ {freopen(TASK".inp","r",stdin);freopen(TASK".out","w",stdout);} /// #define BIT(mask,i) ((mask >> i) & 1) #define MASK(i) (1ll << (i)) #define OFFBIT(mask,i) (mask &~(1ll<<(i))) #define ONBIT(mask,i) (mask | (1ll << (i))) #define lg2(x) (63 - __builtin_clzll(x)) #define c_bit __builtin_popcountll /// using namespace std; const int MOD = 1e9+9; const int N = 2e5+10; template <class X, class Y> bool maximize(X &a, const Y &b){if(a < b) return a = b, true;return false;} template <class X, class Y> bool minimize(X &a, const Y &b){if(a > b) return a = b, true;return false;} void xxx() { int n,k; cin >> n >> k; vector <int> a(n+10); FOR(i,1,n) cin >> a[i]; int last = 0; multiset <pair <int,int> > mts; sort(a.begin()+1,a.begin()+1+n); FOR(i,1,n) { mts.insert({a[i] - last - 1 , i}); last = a[i]; } int x = n - k + 1; int ans = n; while (x--) { debug(*mts.begin()); ans = ans + (*mts.begin()).fi; mts.erase(mts.begin()); } cout << ans; } main() { openfile("TASK"); int tc = 1; // cin >> tc; while (tc--) xxx(); return 0; }

컴파일 시 표준 에러 (stderr) 메시지

stove.cpp:252:1: warning: ISO C++ forbids declaration of 'main' with no type [-Wreturn-type]
  252 | main()
      | ^~~~
stove.cpp: In function 'int main()':
stove.cpp:213:17: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
  213 |         {freopen(TASK".inp","r",stdin);freopen(TASK".out","w",stdout);}
      |          ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~
stove.cpp:254:5: note: in expansion of macro 'openfile'
  254 |     openfile("TASK");
      |     ^~~~~~~~
stove.cpp:213:47: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
  213 |         {freopen(TASK".inp","r",stdin);freopen(TASK".out","w",stdout);}
      |                                        ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~
stove.cpp:254:5: note: in expansion of macro 'openfile'
  254 |     openfile("TASK");
      |     ^~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...