답안 #291735

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
291735 2020-09-05T17:58:35 Z ant101 Gap (APIO16_gap) C++14
30 / 100
61 ms 1272 KB
#include "gap.h"
#include <iostream>
#include <algorithm>
#include <cstring>
#include <iomanip>
#include <fstream>
#include <cmath>
#include <vector>
#include <set>
#include <unordered_set>
#include <unordered_map>
#include <map>
#include <stack>
#include <queue>
#include <assert.h>
#include <limits>
#include <cstdio>
#include <complex>
using namespace std;

typedef long long ll;
typedef long double ld;
typedef double db;
typedef string str;

typedef pair<int, int> pi;
typedef pair<ll,ll> pl;
typedef pair<ld,ld> pd;
#define mp make_pair
#define f first
#define s second

typedef vector<int> vi;
typedef vector<ll> vl;
typedef vector<ld> vd;
typedef vector<str> vs;
typedef vector<pi> vpi;
typedef vector<pl> vpl;
typedef vector<pd> vpd;

#define sz(x) (int)x.size()
#define all(x) begin(x), end(x)
#define rall(x) (x).rbegin(), (x).rend()
#define rsz resize
#define ins insert
#define ft front()
#define bk back()
#define pf push_front
#define pb push_back
#define eb emplace_back
#define lb lower_bound
#define ub upper_bound

#define FOR(i,a,b) for (int i = (a); i < (b); ++i)
#define F0R(i,a) FOR(i,0,a)
#define ROF(i,a,b) for (int i = (b)-1; i >= (a); --i)
#define R0F(i,a) ROF(i,0,a)
#define trav(a,x) for (auto& a: x)

const int MOD = 1e9+7; // 998244353; // = (119<<23)+1
const int MX = 2e5+5;
const ll INF = 1e18;
const ld PI = 4*atan((ld)1);
const int dx[4] = {0,1,0,-1}, dy[4] = {1,0,-1,0};


namespace io {
    void setIn(string s) { freopen(s.c_str(),"r",stdin); }
    void setOut(string s) { freopen(s.c_str(),"w",stdout); }
    void setIO(string s = "") {
        ios_base::sync_with_stdio(0); cin.tie(0); // fast I/O
        // cin.exceptions(cin.failbit); // ex. throws exception when you try to read letter into int
        if (sz(s)) {
            setIn(s+".in");
            setOut(s+".out");
        } // for USACO
    }
}

using namespace io;

namespace input {
    template<class T> void re(complex<T>& x);
    template<class T1, class T2> void re(pair<T1,T2>& p);
    template<class T> void re(vector<T>& a);
    template<class T, size_t SZ> void re(array<T,SZ>& a);
    
    template<class T> void re(T& x) { cin >> x; }
    void re(double& x) { string t; re(t); x = stod(t); }
    void re(ld& x) { string t; re(t); x = stold(t); }
    template<class Arg, class... Args> void re(Arg& first, Args&... rest) {
        re(first); re(rest...);
    }
    
    template<class T> void re(complex<T>& x) { T a,b; re(a,b); x = cd(a,b); }
    template<class T1, class T2> void re(pair<T1,T2>& p) { re(p.f,p.s); }
    template<class T> void re(vector<T>& a) { F0R(i,sz(a)) re(a[i]); }
    template<class T, size_t SZ> void re(array<T,SZ>& a) { F0R(i,SZ) re(a[i]); }
}

namespace output {
    template<class T1, class T2> void pr(const pair<T1,T2>& x);
    template<class T, size_t SZ> void pr(const array<T,SZ>& x);
    template<class T> void pr(const vector<T>& x);
    template<class T> void pr(const set<T>& x);
    template<class T1, class T2> void pr(const map<T1,T2>& x);
    
    template<class T> void pr(const T& x) { cout << x; }
    template<class Arg, class... Args> void pr(const Arg& first, const Args&... rest) {
        pr(first); pr(rest...);
    }
    
    template<class T1, class T2> void pr(const pair<T1,T2>& x) {
        pr("{",x.f,", ",x.s,"}");
    }
    template<class T> void prContain(const T& x) {
        pr("{");
        bool fst = 1; for (const auto& a: x) pr(!fst?", ":"",a), fst = 0; // const needed for vector<bool>
        pr("}");
    }
    template<class T, size_t SZ> void pr(const array<T,SZ>& x) { prContain(x); }
    template<class T> void pr(const vector<T>& x) { prContain(x); }
    template<class T> void pr(const set<T>& x) { prContain(x); }
    template<class T1, class T2> void pr(const map<T1,T2>& x) { prContain(x); }
    
    void ps() { pr("\n"); }
    template<class Arg> void ps(const Arg& first) {
        pr(first); ps(); // no space at end of line
    }
    template<class Arg, class... Args> void ps(const Arg& first, const Args&... rest) {
        pr(first," "); ps(rest...); // print w/ spaces
    }
}

using namespace output;

using namespace input;

ll add(ll a, ll b) {
    a += b;
    if(a >= MOD) {
        a -= MOD;
    }
    return a;
}
ll sub(ll a, ll b) {
    a -= b;
    if(a < 0) {
        a += MOD;
    }
    return a;
}

ll mul(ll a, ll b) {
    return (a * b)%MOD;
}

void add_self(ll& a, ll b) {
    a = add(a, b);
}
void sub_self(ll& a, ll b) {
    a = sub(a, b);
}
void mul_self(ll& a, ll b) {
    a = mul(a, b);
}


long long findGap(int T, int N) {
    ll l, r;
    MinMax(0, 1e18, &l, &r);
    ll best = 0;
    FOR (i, 1, (N+1)/2) {
        ll mn, mx;
        MinMax(l+1, r-1, &mn, &mx);
        best = max({best, mn-l, r-mx});
        l = mn;
        r = mx;
    }
    best = max(best, r-l);
	return best;
}

Compilation message

gap.cpp: In function 'void io::setIn(std::string)':
gap.cpp:68:35: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)', declared with attribute warn_unused_result [-Wunused-result]
   68 |     void setIn(string s) { freopen(s.c_str(),"r",stdin); }
      |                            ~~~~~~~^~~~~~~~~~~~~~~~~~~~~
gap.cpp: In function 'void io::setOut(std::string)':
gap.cpp:69:36: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)', declared with attribute warn_unused_result [-Wunused-result]
   69 |     void setOut(string s) { freopen(s.c_str(),"w",stdout); }
      |                             ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 256 KB Output is correct
2 Correct 1 ms 384 KB Output is correct
3 Correct 0 ms 384 KB Output is correct
4 Correct 0 ms 384 KB Output is correct
5 Correct 1 ms 384 KB Output is correct
6 Correct 0 ms 384 KB Output is correct
7 Correct 0 ms 384 KB Output is correct
8 Correct 0 ms 256 KB Output is correct
9 Correct 0 ms 384 KB Output is correct
10 Correct 0 ms 384 KB Output is correct
11 Correct 1 ms 384 KB Output is correct
12 Correct 1 ms 384 KB Output is correct
13 Correct 1 ms 384 KB Output is correct
14 Correct 1 ms 384 KB Output is correct
15 Correct 1 ms 384 KB Output is correct
16 Correct 12 ms 512 KB Output is correct
17 Correct 12 ms 512 KB Output is correct
18 Correct 12 ms 512 KB Output is correct
19 Correct 15 ms 512 KB Output is correct
20 Correct 8 ms 512 KB Output is correct
21 Correct 48 ms 1144 KB Output is correct
22 Correct 47 ms 1148 KB Output is correct
23 Correct 49 ms 1072 KB Output is correct
24 Correct 51 ms 1272 KB Output is correct
25 Correct 40 ms 1068 KB Output is correct
26 Correct 56 ms 1144 KB Output is correct
27 Correct 61 ms 1148 KB Output is correct
28 Correct 50 ms 1164 KB Output is correct
29 Correct 48 ms 1128 KB Output is correct
30 Correct 34 ms 1152 KB Output is correct
31 Correct 0 ms 384 KB Output is correct
32 Correct 0 ms 384 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 256 KB Output is correct
2 Partially correct 0 ms 384 KB Partially correct
3 Partially correct 0 ms 384 KB Partially correct
4 Partially correct 0 ms 384 KB Partially correct
5 Partially correct 0 ms 384 KB Partially correct
6 Partially correct 0 ms 384 KB Partially correct
7 Partially correct 0 ms 384 KB Partially correct
8 Partially correct 1 ms 384 KB Partially correct
9 Partially correct 0 ms 384 KB Partially correct
10 Partially correct 0 ms 384 KB Partially correct
11 Partially correct 1 ms 384 KB Partially correct
12 Partially correct 1 ms 384 KB Partially correct
13 Partially correct 1 ms 384 KB Partially correct
14 Partially correct 2 ms 384 KB Partially correct
15 Partially correct 1 ms 384 KB Partially correct
16 Partially correct 12 ms 512 KB Partially correct
17 Partially correct 12 ms 512 KB Partially correct
18 Partially correct 15 ms 512 KB Partially correct
19 Partially correct 12 ms 512 KB Partially correct
20 Partially correct 8 ms 512 KB Partially correct
21 Incorrect 49 ms 1076 KB Expected int32, but "2500100000" found
22 Incorrect 48 ms 1144 KB Expected int32, but "2500100000" found
23 Incorrect 48 ms 1152 KB Expected int32, but "2500100000" found
24 Incorrect 51 ms 1144 KB Expected int32, but "2500100000" found
25 Incorrect 40 ms 1144 KB Expected int32, but "2500100000" found
26 Incorrect 48 ms 1152 KB Expected int32, but "2500100000" found
27 Incorrect 48 ms 1144 KB Expected int32, but "2500100000" found
28 Incorrect 49 ms 1148 KB Expected int32, but "2500100000" found
29 Incorrect 48 ms 1144 KB Expected int32, but "2500100000" found
30 Incorrect 42 ms 1152 KB Expected int32, but "2500100000" found
31 Partially correct 0 ms 384 KB Partially correct
32 Partially correct 1 ms 384 KB Partially correct