Submission #3042384
Source Code Expand
#include <cstdlib> #include <cmath> #include <climits> #include <cfloat> #include <map> #include <utility> #include <set> #include <iostream> #include <memory> #include <string> #include <vector> #include <algorithm> #include <functional> #include <sstream> #include <deque> #include <complex> #include <stack> #include <queue> #include <cstdio> #include <cctype> #include <cstring> #include <ctime> #include <iterator> #include <bitset> #include <numeric> #include <list> #include <iomanip> using namespace std; typedef long long LL; typedef pair<int,int> pii; typedef pair<LL,LL> pll; typedef vector<int> vint; typedef vector<vector<int> > vvint; typedef vector<long long> vll, vLL; typedef vector<vector<long long> > vvll, vvLL; #define VV(T) vector<vector< T > > template <class T> void initvv(vector<vector<T> > &v, int a, int b, const T &t = T()){ v.assign(a, vector<T>(b, t)); } template <class F, class T> void convert(const F &f, T &t){ stringstream ss; ss << f; ss >> t; } #define REP(i,n) for(int i=0;i<int(n);++i) #define ALL(v) (v).begin(),(v).end() #define RALL(v) (v).rbegin(),(v).rend() #define PB push #define MOD 1000000009LL #define EPS 1e-8 int N; LL H[ 100010 ]; LL S[ 100010 ]; LL finalH[ 100010 ]; int deadlines[ 100010 ]; bool check( LL h ) { REP( i, N ) deadlines[ i ] = 0; REP( i, N ) { if( H[ i ] > h ) { return false; } LL deadline = ( h - H[ i ] ) / S[ i ]; if( deadline > N - 1 ) { deadline = N - 1; } ++deadlines[ deadline ]; } int cursor = 0; REP( i, N ) { if( deadlines[ i ] > 0 ) { int capacity = i - cursor + 1; // printf( "i = %d deadlines[ i ] = %d capacity = %d cursor = %d\n", i, deadlines[ i ], capacity, cursor ); if( deadlines[ i ] <= capacity ) { cursor += deadlines[ i ]; } else { return false; } } } return true; } int main() { cin >> N; REP( i, N ) { cin >> H[ i ] >> S[ i ]; finalH[ i ] = H[ i ] + S[ i ] * ( N - 1 ); } sort( finalH, finalH + N ); int middle; int left = 0; int right = N - 1; while( left <= right ) { middle = ( left + right ) / 2; if( check( finalH[ middle ] ) ) { right = middle - 1; } else { left = middle + 1; } } while( ! check( finalH[ middle ] ) ) ++middle; cout << finalH[ middle ] << endl; return 0; }
Submission Info
Submission Time | |
---|---|
Task | D - 射撃王 |
User | keitanxkeitan |
Language | C++14 (GCC 5.4.1) |
Score | 0 |
Code Size | 2454 Byte |
Status | WA |
Exec Time | 112 ms |
Memory | 2944 KB |
Judge Result
Set Name | Sample | Subtask1 | Subtask2 | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Score / Max Score | 0 / 0 | 0 / 30 | 0 / 70 | ||||||||||
Status |
|
|
|
Set Name | Test Cases |
---|---|
Sample | subtask0-sample01.txt, subtask0-sample02.txt |
Subtask1 | subtask0-sample01.txt, subtask0-sample02.txt, subtask1-01.txt, subtask1-02.txt, subtask1-03.txt, subtask1-04.txt, subtask1-05.txt, subtask1-06.txt, subtask1-07.txt, subtask1-08.txt, subtask1-09.txt, subtask1-10.txt, subtask1-11.txt, subtask1-12.txt, subtask1-13.txt, subtask1-14.txt, subtask1-15.txt |
Subtask2 | subtask0-sample01.txt, subtask0-sample02.txt, subtask1-01.txt, subtask1-02.txt, subtask1-03.txt, subtask1-04.txt, subtask1-05.txt, subtask1-06.txt, subtask1-07.txt, subtask1-08.txt, subtask1-09.txt, subtask1-10.txt, subtask1-11.txt, subtask1-12.txt, subtask1-13.txt, subtask1-14.txt, subtask1-15.txt, subtask2-01.txt, subtask2-02.txt, subtask2-03.txt, subtask2-04.txt, subtask2-05.txt, subtask2-06.txt, subtask2-07.txt, subtask2-08.txt, subtask2-09.txt, subtask2-10.txt, subtask2-11.txt, subtask2-12.txt, subtask2-13.txt, subtask2-14.txt, subtask2-15.txt |
Case Name | Status | Exec Time | Memory |
---|---|---|---|
subtask0-sample01.txt | AC | 1 ms | 256 KB |
subtask0-sample02.txt | AC | 1 ms | 256 KB |
subtask1-01.txt | WA | 1 ms | 256 KB |
subtask1-02.txt | AC | 1 ms | 256 KB |
subtask1-03.txt | WA | 1 ms | 256 KB |
subtask1-04.txt | WA | 1 ms | 256 KB |
subtask1-05.txt | WA | 1 ms | 256 KB |
subtask1-06.txt | WA | 1 ms | 256 KB |
subtask1-07.txt | WA | 1 ms | 256 KB |
subtask1-08.txt | WA | 1 ms | 256 KB |
subtask1-09.txt | WA | 1 ms | 256 KB |
subtask1-10.txt | WA | 1 ms | 256 KB |
subtask1-11.txt | WA | 1 ms | 256 KB |
subtask1-12.txt | WA | 1 ms | 256 KB |
subtask1-13.txt | WA | 1 ms | 256 KB |
subtask1-14.txt | WA | 1 ms | 256 KB |
subtask1-15.txt | WA | 1 ms | 256 KB |
subtask2-01.txt | WA | 1 ms | 256 KB |
subtask2-02.txt | WA | 3 ms | 256 KB |
subtask2-03.txt | WA | 3 ms | 384 KB |
subtask2-04.txt | WA | 22 ms | 768 KB |
subtask2-05.txt | WA | 55 ms | 1664 KB |
subtask2-06.txt | WA | 68 ms | 2432 KB |
subtask2-07.txt | WA | 99 ms | 2688 KB |
subtask2-08.txt | WA | 111 ms | 2944 KB |
subtask2-09.txt | WA | 111 ms | 2944 KB |
subtask2-10.txt | WA | 73 ms | 2944 KB |
subtask2-11.txt | AC | 109 ms | 2944 KB |
subtask2-12.txt | WA | 110 ms | 2944 KB |
subtask2-13.txt | WA | 89 ms | 2944 KB |
subtask2-14.txt | WA | 112 ms | 2944 KB |
subtask2-15.txt | WA | 110 ms | 2944 KB |