Submission #198704

# Submission time Handle Problem Language Result Execution time Memory
198704 2020-01-27T12:35:18 Z SamAnd Garage (IOI09_garage) C++17
100 / 100
7 ms 376 KB
#include <bits/stdc++.h>
using namespace std;
const int N = 102, M = 2003;

int n, m;
int r[N], w[M];

int u[M];

int main()
{
    scanf("%d%d", &n, &m);
    for (int i = 1; i <= n; ++i)
        scanf("%d", &r[i]);
    for (int i = 1; i <= m; ++i)
        scanf("%d", &w[i]);
    int ans = 0;
    queue<int> q;
    set<int> s;
    for (int i = 1; i <= n; ++i)
        s.insert(i);
    for (int ii = 0; ii < m * 2; ++ii)
    {
        int i;
        scanf("%d", &i);
        if (i > 0)
        {
            if (!s.empty())
            {
                u[i] = (*s.begin());
                s.erase(u[i]);
                ans += w[i] * r[u[i]];
            }
            else
                q.push(i);
        }
        else
        {
            i *= -1;
            s.insert(u[i]);
            while (!q.empty() && !s.empty())
            {
                int i = q.front();
                q.pop();
                u[i] = (*s.begin());
                s.erase(u[i]);
                ans += w[i]* r[u[i]];
            }
        }
    }
    printf("%d\n", ans);
    return 0;
}

Compilation message

garage.cpp: In function 'int main()':
garage.cpp:12:10: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
     scanf("%d%d", &n, &m);
     ~~~~~^~~~~~~~~~~~~~~~
garage.cpp:14:14: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
         scanf("%d", &r[i]);
         ~~~~~^~~~~~~~~~~~~
garage.cpp:16:14: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
         scanf("%d", &w[i]);
         ~~~~~^~~~~~~~~~~~~
garage.cpp:25:14: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
         scanf("%d", &i);
         ~~~~~^~~~~~~~~~
# Verdict Execution time Memory Grader output
1 Correct 6 ms 376 KB Output is correct
2 Correct 5 ms 256 KB Output is correct
3 Correct 5 ms 128 KB Output is correct
4 Correct 5 ms 256 KB Output is correct
5 Correct 5 ms 376 KB Output is correct
6 Correct 5 ms 376 KB Output is correct
7 Correct 5 ms 248 KB Output is correct
8 Correct 5 ms 376 KB Output is correct
9 Correct 5 ms 376 KB Output is correct
10 Correct 5 ms 376 KB Output is correct
11 Correct 5 ms 376 KB Output is correct
12 Correct 5 ms 376 KB Output is correct
13 Correct 6 ms 376 KB Output is correct
14 Correct 6 ms 376 KB Output is correct
15 Correct 6 ms 376 KB Output is correct
16 Correct 6 ms 376 KB Output is correct
17 Correct 6 ms 376 KB Output is correct
18 Correct 6 ms 376 KB Output is correct
19 Correct 6 ms 376 KB Output is correct
20 Correct 7 ms 376 KB Output is correct