답안 #26209

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
26209 2017-06-28T11:07:47 Z Extazy Boat (APIO16_boat) C++14
0 / 100
2000 ms 119836 KB
#include <bits/stdc++.h>

using namespace std;

const int N = 517;
const int TO = 1000000000;
const int KEY = 314487923;
const int MOD = (1e9) + 7;

int n;
pair < int, int > a[N];
unordered_map < int, int > it;
long long ans;

void update(int pos, int val) {
    while(val<0) val+=MOD;
    val%=MOD;
    for(;pos<=TO;pos+=pos&(pos)) it[pos]+=val,it[pos]%=MOD;
}

int query(int pos) {
    long long ans=1;
    for(;pos>=1;pos-=pos&(-pos)) ans+=it[pos];
    return ans%MOD;
}

int main() {
    int i,j;
    
    scanf("%d", &n);
    for(i=1;i<=n;i++) {
        scanf("%d %d", &a[i].first, &a[i].second);
    }
    
    for(i=1;i<=n;i++) {
        //for(j=a[i].first;j<=a[i].second;j++) ans+=query(j-1)+1;
        //for(j=a[i].first;j<=a[i].second;j++) update(j,1);
        for(j=a[i].second;j>=a[i].first;j--) ans+=query(j-1),update(j,query(j-1)+query(j-1)-query(j));
    }

    ans%=MOD;
    printf("%lld\n", ans);

    return 0;
}

Compilation message

boat.cpp: In function 'int main()':
boat.cpp:30:20: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
     scanf("%d", &n);
                    ^
boat.cpp:32:50: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
         scanf("%d %d", &a[i].first, &a[i].second);
                                                  ^
# 결과 실행 시간 메모리 Grader output
1 Incorrect 0 ms 2308 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 0 ms 2308 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Execution timed out 2000 ms 119836 KB Execution timed out
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 0 ms 2308 KB Output isn't correct
2 Halted 0 ms 0 KB -