Submission #363210

# Submission time Handle Problem Language Result Execution time Memory
363210 2021-02-05T09:53:41 Z Ruxandra985 Schools (IZhO13_school) C++14
15 / 100
380 ms 18156 KB
#include <bits/stdc++.h>
#define DIMN 300010
using namespace std;
int x[DIMN] , y[DIMN];
pair <int , int> v[DIMN];
multiset <int> w;
int cmp (pair <int , int> a , pair <int , int> b){
    return a > b;
}
int main()
{
    FILE *fin = stdin;
    FILE *fout = stdout;
    int n , m , s , i , aux ,idx;
    long long suma , sol = 0;
    multiset<int> :: iterator it , it2;
    fscanf (fin,"%d%d%d",&n,&m,&s);
    for (i = 1 ; i <= n ; i++){
        fscanf (fin,"%d%d",&x[i],&y[i]);

        v[i] = make_pair(x[i] - y[i] , i);

    }

    sort (v + 1 , v + n + 1 , cmp);
    /// v = ordinea prioritatilor

    suma = 0;

    for (i = 1 ; i <= m ; i++){
        suma += x[v[i].second];
    }

    for (i = m + 1 ; i <= n ; i++){
        w.insert(y[v[i].second]);
    }
    idx = 0;
    it = w.end();
    it--;

    while (idx < s){
        idx++;
        suma += *it;
        aux = *it;
        it--;
    }
    /// aux e cea mai mica valoare luata din sufixul ala

    sol = suma;

    for (i = m + 1 ; i <= n ; i++){
        suma -= x[v[i - m].second];
        suma += x[v[i].second];

        /// cele mai mari s uri

        /// scoti i ul din multiset

        if (y[v[i].second] >= aux){ /// ai o pb
            suma -= y[v[i].second];

            suma += *it;
            aux = *it;

            it--; /// te duci mai la stanga


        }
        w.erase(y[v[i].second]);
        /// it vreau sa fie prima pozitie a lui aux


        it = w.lower_bound(aux);
        it--;

        /// adaugi i - m ul

        if (y[v[i - m].second] >= aux){ /// ai o pb, il adaugi
            suma -= aux;
            suma += y[v[i - m].second];

            it2 = it;
            it++;
            it2++;
            it2++;
            aux = (*it2);


        }

        w.insert(y[v[i - m].second]);

        it = w.lower_bound(aux);
        it--;
        sol = max(sol , suma);
    }
    fprintf (fout,"%lld",sol);
    return 0;
}

Compilation message

school.cpp: In function 'int main()':
school.cpp:17:12: warning: ignoring return value of 'int fscanf(FILE*, const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
   17 |     fscanf (fin,"%d%d%d",&n,&m,&s);
      |     ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~
school.cpp:19:16: warning: ignoring return value of 'int fscanf(FILE*, const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
   19 |         fscanf (fin,"%d%d",&x[i],&y[i]);
      |         ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~
school.cpp:59:9: warning: 'aux' may be used uninitialized in this function [-Wmaybe-uninitialized]
   59 |         if (y[v[i].second] >= aux){ /// ai o pb
      |         ^~
# Verdict Execution time Memory Grader output
1 Correct 1 ms 364 KB Output is correct
2 Runtime error 1 ms 492 KB Execution killed with signal 11
3 Correct 1 ms 364 KB Output is correct
4 Incorrect 1 ms 364 KB Output isn't correct
5 Incorrect 1 ms 364 KB Output isn't correct
6 Incorrect 1 ms 384 KB Output isn't correct
7 Incorrect 4 ms 620 KB Output isn't correct
8 Correct 2 ms 492 KB Output is correct
9 Incorrect 3 ms 492 KB Output isn't correct
10 Incorrect 3 ms 492 KB Output isn't correct
11 Incorrect 5 ms 620 KB Output isn't correct
12 Incorrect 5 ms 748 KB Output isn't correct
13 Incorrect 21 ms 1536 KB Output isn't correct
14 Incorrect 125 ms 5740 KB Output isn't correct
15 Incorrect 287 ms 12020 KB Output isn't correct
16 Incorrect 367 ms 12672 KB Output isn't correct
17 Incorrect 230 ms 12620 KB Output isn't correct
18 Incorrect 286 ms 13804 KB Output isn't correct
19 Incorrect 283 ms 15340 KB Output isn't correct
20 Incorrect 380 ms 18156 KB Output isn't correct