提出 #72185148


ソースコード 拡げる

#include <algorithm>
#include <array>
#include <bitset>
#include <cassert>
#include <chrono>
#include <climits>
#include <cmath>
#include <complex>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <deque>
#include <exception>
#include <fstream>
#include <functional>
#include <iomanip>
#include <iostream>
#include <iterator>
#include <limits>
#include <list>
#include <map>
#include <memory>
#include <new>
#include <numeric>
#include <queue>
#include <set>
#include <sstream>
#include <stack>
#include <stdexcept>
#include <streambuf>
#include <string>
#include <tuple>
#include <typeinfo>
#include <unordered_map>
#include <unordered_set>
#include <utility>
#include <vector>
using ll = long long;
using ld = long double;
using namespace std;
#define endl "\n"
#define ff first
#define ss second
#define forn(i,n) for(int i=0;i<n;i++)
#define dbgv(v) cout<<#v<<" "<<v<<endl
#define dbga(a,n) forn(i,n-1) {cout<<a[i]<<' ';} cout<<a[n-1]<<'\n';
#define all(v) (v).begin(), (v).end()
const ll N = 1e6 + 5, mod = 1e9 + 7;
ll fact[N], modinv[N];
ll fastpow(ll n, ll m) {
    int ret = 1;
    while (m) {
        if (m & 1)
            (ret *= n) %= mod;
        (n *= n) %= mod;
        m /= 2;
    }
    return ret;
}
void pre() {
    fact[0] = 1;
    for (int i = 1; i < N; i++)
        fact[i] = i * fact[i - 1] % mod;
    modinv[N - 1] = fastpow(fact[N - 1], mod - 2);
    for (int i = N - 2; i >= 0; i--)
        modinv[i] = (i + 1) * modinv[i + 1] % mod;
}
ll ncr(ll n, ll r) {
    return fact[n] * modinv[n - r] % mod * modinv[r] % mod;
}
void dfs(int i,int p, vector<vector<int>>&adj){
	for(auto c:adj[i]){
		dfs(c,i,adj);
	}
}
bool comp(pair<ll,ll>&a,pair<ll,ll>&b){
    if(a.ff!=b.ff) return a.ff<b.ff;
    return a.ss>b.ss;
}
void solve(){
    int n;
    cin>>n;
    vector<pair<ll,ll>> p(n);
    forn(i,n) cin>>p[i].ff>>p[i].ss;
    sort(all(p),comp);
    vector<ll> dp;
    forn(i,n){
        ll b=p[i].ss;
        auto it=lower_bound(all(dp),b);
        if(it==dp.end()) dp.push_back(b);
        else *it=b;
    }
    cout<<dp.size()<<endl;
}
int main() {
    ios_base::sync_with_stdio(false);
    cin.tie(0);
    int T = 1;
    while(T--){
        solve();
    }
    return 0;
}

提出情報

提出日時
問題 E - Kite
ユーザ SummitDevil
言語 C++23 (GCC 15.2.0)
得点 450
コード長 2309 Byte
結果 AC
実行時間 38 ms
メモリ 8712 KiB

コンパイルエラー

./Main.cpp: In function 'void dfs(int, int, std::vector<std::vector<int> >&)':
./Main.cpp:71:20: warning: unused parameter 'p' [-Wunused-parameter]
   71 | void dfs(int i,int p, vector<vector<int>>&adj){
      |                ~~~~^

ジャッジ結果

セット名 Sample All
得点 / 配点 0 / 0 450 / 450
結果
AC × 3
AC × 24
セット名 テストケース
Sample 00_sample_00.txt, 00_sample_01.txt, 00_sample_02.txt
All 00_sample_00.txt, 00_sample_01.txt, 00_sample_02.txt, 01_random_1_00.txt, 01_random_1_01.txt, 01_random_1_02.txt, 01_random_1_03.txt, 01_random_1_04.txt, 01_random_1_05.txt, 02_random_2_00.txt, 02_random_2_01.txt, 02_random_2_02.txt, 02_random_2_03.txt, 02_random_2_04.txt, 02_random_2_05.txt, 03_sorted_00.txt, 03_sorted_01.txt, 03_sorted_02.txt, 03_sorted_03.txt, 03_sorted_04.txt, 03_sorted_05.txt, 04_same_coord_00.txt, 04_same_coord_01.txt, 04_same_coord_02.txt
ケース名 結果 実行時間 メモリ
00_sample_00.txt AC 2 ms 3456 KiB
00_sample_01.txt AC 1 ms 3656 KiB
00_sample_02.txt AC 1 ms 3680 KiB
01_random_1_00.txt AC 23 ms 5152 KiB
01_random_1_01.txt AC 38 ms 6636 KiB
01_random_1_02.txt AC 32 ms 6056 KiB
01_random_1_03.txt AC 38 ms 6568 KiB
01_random_1_04.txt AC 38 ms 6544 KiB
01_random_1_05.txt AC 38 ms 6616 KiB
02_random_2_00.txt AC 32 ms 7748 KiB
02_random_2_01.txt AC 33 ms 7648 KiB
02_random_2_02.txt AC 33 ms 7684 KiB
02_random_2_03.txt AC 34 ms 7128 KiB
02_random_2_04.txt AC 32 ms 7124 KiB
02_random_2_05.txt AC 34 ms 6948 KiB
03_sorted_00.txt AC 33 ms 8608 KiB
03_sorted_01.txt AC 30 ms 6432 KiB
03_sorted_02.txt AC 33 ms 8712 KiB
03_sorted_03.txt AC 32 ms 8612 KiB
03_sorted_04.txt AC 29 ms 6640 KiB
03_sorted_05.txt AC 33 ms 8656 KiB
04_same_coord_00.txt AC 29 ms 6572 KiB
04_same_coord_01.txt AC 29 ms 6544 KiB
04_same_coord_02.txt AC 18 ms 6488 KiB