Submission #996482

# Submission time Handle Problem Language Result Execution time Memory
996482 2024-06-10T17:09:28 Z cpptowin Lasers (NOI19_lasers) C++17
0 / 100
27 ms 14280 KB
#include <bits/stdc++.h>
#define fo(i, d, c) for (int i = d; i <= c; i++)
#define fod(i, c, d) for (int i = c; i >= d; i--)
#define maxn 1000010
#define N 1010
#define fi first
#define se second
#define pb emplace_back
#define en cout << "\n";
#define int long long
#define inf (int)1e18
#define pii pair<int, int>
#define vii vector<pii>
#define lb(x) x & -x
#define bit(i, j) ((i >> j) & 1)
#define offbit(i, j) (i ^ (1LL << j))
#define onbit(i, j) (i | (1LL << j))
#define vi vector<int>
#define all(x) x.begin(),x.end()
template <typename T1, typename T2>
bool minimize(T1 &a, T2 b)
{
    if (a > b)
    {
        a = b;
        return true;
    }
    return false;
}
template <typename T1, typename T2>
bool maximize(T1 &a, T2 b)
{
    if (a < b)
    {
        a = b;
        return true;
    }
    return false;
}
using namespace std;
const int nsqrt = 450;
const int mod = 1e9 + 7;
int l,m,n,a[maxn],p[maxn];
int nowl,nowr;
main()
{
#define name "TASK"
    if (fopen(name ".inp", "r"))
    {
        freopen(name ".inp", "r", stdin);
        freopen(name ".out", "w", stdout);
    }
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);
    cin >> l >> m;
    vii range;
    fo(i,1,m)
    {
        cin >> n;
        fo(i,1,n) 
        {
            cin >> a[i];
            p[i] = p[i - 1] + a[i];
        }
        if(p[n] == l) return cout << n,0;
        int L = n,R = 1;
        fo(i,0,n)
        {
            int u = p[i],v = l - (p[n] - p[i - 1]) + 1;
            if(u >= v) range.pb(v,u);
            else continue;
        }
    }
    if(range.empty()) return cout << 0,0;
    sort(range.begin(),range.end(),[](pii a,pii b)
    {
        return a.fi < b.fi or (a.fi == b.fi and a.se > b.se);
    });
    vii res;
    res.pb(range[0]);
    for(auto it : range) 
    {
        if(res.back().se <= it.se)
        {
            auto b = res.back();
            res.pop_back();
            if(it.fi >= b.fi and it.fi <= b.se) 
            {
                b.se = it.se;
                res.pb(b);
            }
            else 
            {
                res.pb(b);
                res.pb(it);
            }
        }
    }
    int ans = 0;
    for(auto [l,r] : res) ans += r - l + 1;
    cout << ans;
}

Compilation message

lasers.cpp:45:1: warning: ISO C++ forbids declaration of 'main' with no type [-Wreturn-type]
   45 | main()
      | ^~~~
lasers.cpp: In function 'int main()':
lasers.cpp:66:13: warning: unused variable 'L' [-Wunused-variable]
   66 |         int L = n,R = 1;
      |             ^
lasers.cpp:66:19: warning: unused variable 'R' [-Wunused-variable]
   66 |         int L = n,R = 1;
      |                   ^
lasers.cpp:50:16: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   50 |         freopen(name ".inp", "r", stdin);
      |         ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
lasers.cpp:51:16: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   51 |         freopen(name ".out", "w", stdout);
      |         ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~
# Verdict Execution time Memory Grader output
1 Correct 1 ms 2396 KB Output is correct
2 Incorrect 1 ms 2396 KB Output isn't correct
3 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 1 ms 2396 KB Output is correct
2 Incorrect 1 ms 2396 KB Output isn't correct
3 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 27 ms 14280 KB Output is correct
2 Incorrect 4 ms 5344 KB Output isn't correct
3 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 1 ms 2396 KB Output is correct
2 Incorrect 0 ms 2396 KB Output isn't correct
3 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 27 ms 14280 KB Output is correct
2 Incorrect 4 ms 5344 KB Output isn't correct
3 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 1 ms 2396 KB Output is correct
2 Incorrect 1 ms 2396 KB Output isn't correct
3 Halted 0 ms 0 KB -