제출 #498071

#제출 시각아이디문제언어결과실행 시간메모리
498071MohamedAliSaidaneJob Scheduling (CEOI12_jobs)C++14
20 / 100
151 ms14688 KiB
#pragma GCC target ("avx2")
#pragma GCC optimization ("O3")
#pragma GCC optimization ("unroll-loops")


#include <bits/stdc++.h>
using namespace std;

typedef long long ll;
typedef unsigned long long ull;
typedef long double ld;
typedef pair<int,int> pii;
typedef pair<ll,ll> pll;
typedef pair<ld,ld> pld;
typedef vector<int> vi;
typedef vector<ll> vll;
typedef vector<pii> vpi;
typedef vector<pll> vpl;
typedef vector<pld> vpd;

#define pb push_back
#define popb pop_back
#define all(v) (v).begin(),(v).end()
#define ff first
#define ss second

const ll MOD = 1e9 + 7;
const ll INF = 1e18;
int nx[4] = {1,-1,0,0}, ny[4] = {0,0,1,-1};
ll gcd(ll a , ll b) {return b ? gcd(b , a % b) : a ;}
ll lcm(ll a, ll b){return (a / gcd(a, b)) * b;}

const int MAX_M = 1e6 + 4;
int n, d, m;
pii req[MAX_M];
bool test(int x)
{
    int prec = 0;
    for(int i=  1; i <= n; i ++)
    {
        for(int j = prec; j < min(prec + x,m); j ++)
        {
            if(i - req[j].ff > d)
            {
                return false;
            }
        }
        prec += x;
    }
    return true;
}
void solve()
{
    cin >> n>> d >> m;
    for(int i = 0; i < m; i ++)
    {
        int x; cin >> x;
        req[i] = {x,i+1};
    }
    sort(req, req + m);
    //for(auto e: req)
     //   cout << e.ff << ' ' << e.ss << '\n';
    int debut = 1;
    int fin = m;
    int ans = m;
    while(debut <= fin)
    {
        int mid = (debut+fin)/2;
        if(test(mid))
        {
            ans = mid;
            fin = mid -1;
        }
        else
            debut = mid + 1;
    }
    cout << ans << '\n';
    int cur = 0;
    for(int i = 1; i <=n; i ++)
    {
        for(int j = cur; j < min(cur+ans,m); j ++)
            cout << req[j].ss<< ' ';
        cur += ans;
        cout << "0";
        if(i != n)
            cout << '\n';
    }
}
int main()
{
    ios::sync_with_stdio(false);
    cin.tie(0); cout.tie(0);
    int tt = 1;
    while(tt--)
        solve();
}

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

jobs.cpp:2: warning: ignoring '#pragma GCC optimization' [-Wunknown-pragmas]
    2 | #pragma GCC optimization ("O3")
      | 
jobs.cpp:3: warning: ignoring '#pragma GCC optimization' [-Wunknown-pragmas]
    3 | #pragma GCC optimization ("unroll-loops")
      |
#Verdict Execution timeMemoryGrader output
Fetching results...