結果

問題 No.817 Coin donation
ユーザー shirokuro_bufshirokuro_buf
提出日時 2019-04-19 22:25:51
言語 C++11
(gcc 11.4.0)
結果
TLE  
実行時間 -
コード長 2,222 bytes
コンパイル時間 623 ms
コンパイル使用メモリ 71,920 KB
実行使用メモリ 6,944 KB
最終ジャッジ日時 2024-09-22 21:49:25
合計ジャッジ時間 10,385 ms
ジャッジサーバーID
(参考情報)
judge3 / judge2
このコードへのチャレンジ
(要ログイン)

テストケース

テストケース表示
入力 結果 実行時間
実行使用メモリ
testcase_00 TLE -
testcase_01 AC 2 ms
6,816 KB
testcase_02 TLE -
testcase_03 WA -
testcase_04 WA -
testcase_05 AC 25 ms
6,940 KB
testcase_06 AC 26 ms
6,944 KB
testcase_07 AC 23 ms
6,940 KB
testcase_08 AC 71 ms
6,940 KB
testcase_09 AC 26 ms
6,944 KB
testcase_10 AC 100 ms
6,944 KB
testcase_11 AC 101 ms
6,940 KB
testcase_12 AC 102 ms
6,940 KB
testcase_13 WA -
testcase_14 WA -
testcase_15 WA -
権限があれば一括ダウンロードができます

ソースコード

diff #

#include <vector>
#include <cmath>
#include <iostream>
#include <algorithm>

typedef char                SINT8;
typedef unsigned char       UINT8;
typedef short               SINT16;
typedef unsigned short      UINT16;
typedef int                 SINT32;
typedef unsigned int        UINT32;
typedef long long           SINT64;
typedef unsigned long long  UINT64;
typedef double              DOUBLE;

#define MAX(a,b) ((a)>(b)?(a):(b))
#define MIN(a,b) ((a)<(b)?(a):(b))
#define ABS(a) ((a)>(0)?(a):-(a))
#define REP(i,n) for(int (i)=0;(i)<(n);(i)++)

using namespace std;

int main() {

	SINT32 N = 0;
	SINT32 M = 0;

	SINT32 cntA = 1;
	SINT32 cntB = 0;
	SINT32 cntM = 0;

	SINT32 ANS = 0;

	cin >> N;
	cin >> M;

	vector<SINT32> DATAA(N);
	vector<SINT32> DATAB(N);
	
	for (SINT32 i = 0; i < N; i++) {
		cin >> DATAA[i];
		cin >> DATAB[i];
	}
	sort(DATAA.begin(),DATAA.end());
	DATAA.emplace_back(1000000001);	//後ろに追加
	sort(DATAB.begin(),DATAB.end());



	SINT32 Plus = 1;

	for (SINT32 i = DATAA[0]; i < 1000000001; i++) {
		while (DATAA[cntA] == i+1) {
			Plus++;
			cntA++;
		}

		cntM = cntM + Plus;
		if (cntM >= M) {
			ANS = i+1;
			break;
		}

		while (DATAB[cntB] == i+1) {
			Plus--;
			cntB++;
		}
//		cout << Plus << endl;

	}

	cout << ANS<< endl;
	return 0;
}

//	sort(DATA.begin(),DATA.end());
//	sort(DATA.begin(),DATA.end(),std::greater<SINT32>());
//	__gcd(ANS,DATA[i]);

//	// DATA.emplace_back(BUF);	//後ろに追加

//  DATA.erase(std::unique(DATA.begin(), DATA.end()), DATA.end());

//	vector<vector<SINT32>> DP(N,vector<SINT32>(3)); //2次元配列

/*
	SINT32 M = 3;
	vector<pair<SINT32,SINT32>> DATA2(M);
	for (SINT32 i = 0; i < M; i++) {
		cin >> DATA2[i].first;
		cin >> DATA2[i].second;
	}
	sort(DATA2.begin(),DATA2.end());
	cout << DATA2[0].first << endl;
	cout << DATA2[0].second << endl;
*/

// 	vector<pair<int,pair<int,int>>> DATA(M);
//	cin >> DATA[i].first;
//	cin >> DATA[i].second.first;
//	cin >> DATA[i].second.second;


//		APOSI = lower_bound(ADATA.begin(),ADATA.end(),QDATA[i]) - ADATA.begin();
//		BPOSI = lower_bound(BDATA.begin(),BDATA.end(),QDATA[i]) - BDATA.begin();


/* 文字列回転
	string N;
	cin >> N;
	N = N[N.length()-1] + N.substr(0,N.length()-1);
*/
0