pastebin

Paste Search Dynamic
Recent pastes
prevW curW
  1.    #include <bits/stdc++.h>
  2.     #include <fstream>
  3.     using namespace std;
  4.     #define read(type) readInt<type>() // Fast read
  5.     #define ll long long
  6.     #define nL "n"
  7.     #define pb push_back
  8.     #define mk make_pair
  9.     #define pii pair<int, int>
  10.     #define a first
  11.     #define b second
  12.     #define vi vector<int>
  13.     #define all(x) (x).begin(), (x).end()
  14.     #define umap unordered_map
  15.     #define uset unordered_set
  16.     #define MOD 1000000007
  17.     #define imax INT_MAX
  18.     #define imin INT_MIN
  19.     #define exp 1e9
  20.     #define sz(x) (int((x).size()))
  21.  
  22.     vector<int> solve() {
  23.         int k, f; cin >> k >> f;
  24.         vector<int> freq(k, 0);
  25.  
  26.         vector<pair<pair<int,int>, int>> fights;
  27.         for(auto i = 0; i < f; i++) {
  28.           int x, y, w; cin >> x >> y >> w;
  29.           fights.push_back(mk(mk(x, y), w));
  30.         }
  31.         sort(all(fights));
  32.  
  33.  
  34.         int ox, oy, ow; ox = fights[0].a.a; oy = fights[0].a.b; ow = fights[0].b;
  35.         pair<int, int> lim = mk(ox , oy);
  36.         for(auto i = ox; i <= oy; i++) {
  37.           if (i != ow) {freq[i-1] = ow;}
  38.         }
  39.  
  40.         int prevW = ow;
  41.         for(auto i = 1; i < f; i++) {
  42.          
  43.           int x, y, curW; x = fights[i].a.a; y = fights[i].a.b; curW = fights[i].b;
  44.           if (prevW != curW) {freq[prevW-1] = curW;}
  45.  
  46.           prevW = curW;
  47.  
  48.           if (lim.a > x) {
  49.             for(auto i = x; i < lim.a; i++) {
  50.               if (i == curW) {continue;}
  51.               freq[i-1] = curW;
  52.             }
  53.           }
  54.  
  55.           if (lim.b < y) {
  56.             for(auto i = lim.b+1; i <= y; i++) {
  57.               if (i == curW) {continue;}
  58.               freq[i-1] = curW;
  59.             }
  60.           }
  61.  
  62.           lim.a = x; lim.b = y;
  63.         }
  64.  
  65.         return freq;
  66.        
  67.     }
  68.    
  69.  
  70.     int32_t main()
  71.     {
  72.         ios_base::sync_with_stdio(false);
  73.         cin.tie(null);
  74.         auto res = solve();
  75.         for(auto crap : res) {
  76.           cout << crap << " ";
  77.         }
  78.         return 0;
  79.     }
Parsed in 0.023 seconds