Submission #3000264
Source Code Expand
#define _CRT_SECURE_NO_WARNINGS
#define _USE_MATH_DEFINES
#include <iostream>
#include <iomanip>
#include <cstdio>
#include <cstring>
#include <cmath>
#include <cstdlib>
#include <algorithm>
#include <string>
#include <vector>
#include <stack>
#include <queue>
#include <set>
#include <map>
#include <unordered_map>
#include <functional>
#include <utility>
#include <tuple>
#include <cctype>
#include <bitset>
#include <complex>
#include <cmath>
#include <array>
using namespace std;
#define INF 0x3f3f3f3f
#define INFLL 0x3f3f3f3f3f3f3f3fLL
#define MOD 1000000007
#define mp make_pair
#define mt make_tuple
#define pb push_back
#define eb emplace_back
typedef long long ll;
typedef long double ld;
typedef pair<int, int> pint;
typedef pair<ll,ll> pll;
typedef tuple<int,int,int> tint;
typedef vector<int> vint;
typedef vector<ll> vll;
typedef vector<pint> vpint;
int dx[8]={0,0,-1,1,1,1,-1,-1};
int dy[8]={-1,1,0,0,1,-1,1,-1};
const int SIZE=300050;
//ここまでテンプレ
//↓Binary Indexed Tree
struct BIT{
private:
int n;
vector<int> node;
public:
//N要素のBITを作り、すべて0で初期化する
//1-indexedであることに注意!!
BIT(int N){
node.resize(N+1,0);
n=N;
}
//ノードiまでの和を計算する
int sum(int i){
if(!i)
return 0;
return node[i]+sum(i-(i&-i));
}
//ノードiにxを足す
void add(int i,int x){
if(i>n)
return;
node[i]+=x;
add(i+(i&-i),x);
}
};
//↑Binary Indexed Tree
int main(){
int N,M;
cin>>N>>M;
//x=l,y=r
//クエリ<x,0:区間,1:質問,y>
vector<tint> Q;
//クエリに質問を入れていく
for(int i=1;i<=M;i++){
for(int j=i;j<=M;j+=i){
int a=j-i,b=j;
Q.eb(b,1,b);
Q.eb(a,1,b);
}
}
sort(Q.begin(),Q.end());
Q.erase(unique(Q.begin(),Q.end()),Q.end());
//クエリに区間を入れる
for(int i=0;i<N;i++){
int l,r;
cin>>l>>r;
Q.eb(l,0,r);
}
sort(Q.begin(),Q.end());
//BIT
BIT B(M+2);
//クエリを処理する
vector<unordered_map<int,int>> pam(M+2);
for(tint T:Q){
int a,b,c;
tie(a,c,b)=T;
//区間クエリなら、区間を追加する
if(c==0){
//S.update(b,S.getsum(b,b+1)+1);
B.add(b+1,1);
}
//質問クエリなら、質問に答える
else{
//pam[mp(a,b)]=S.getsum(b,M+1);
pam[a][b]=B.sum(M+1)-B.sum(b);
}
}
//答えを求める
for(int i=1;i<=M;i++){
int ans=0;
for(int j=i;j<=M;j+=i){
int a=j-i,b=j;
ans+=pam[b][b]-pam[a][b];
}
cout<<ans<<endl;
}
return 0;
}
Submission Info
Submission Time |
|
Task |
E - Snuke Line |
User |
takeo1116 |
Language |
C++14 (GCC 5.4.1) |
Score |
700 |
Code Size |
2573 Byte |
Status |
AC |
Exec Time |
1075 ms |
Memory |
91744 KB |
Judge Result
Set Name |
Sample |
All |
Score / Max Score |
0 / 0 |
700 / 700 |
Status |
|
|
Set Name |
Test Cases |
Sample |
00_example_01.txt, 00_example_02.txt |
All |
00_example_01.txt, 00_example_02.txt, 01.txt, 02.txt, 03.txt, 04.txt, 05.txt, 06.txt, 07.txt, 08.txt, 09.txt, 10.txt, 11.txt, 12.txt, 13.txt, 14.txt, 15.txt, 16.txt, 17.txt, 18.txt, 19.txt, 20.txt, 21.txt, 22.txt, 23.txt, 24.txt, 25.txt, 26.txt, 27.txt, 28.txt, 29.txt, 30.txt, 31.txt, 32.txt, 33.txt, 34.txt, 35.txt, 36.txt, 37.txt |
Case Name |
Status |
Exec Time |
Memory |
00_example_01.txt |
AC |
3 ms |
384 KB |
00_example_02.txt |
AC |
1 ms |
256 KB |
01.txt |
AC |
1 ms |
256 KB |
02.txt |
AC |
2 ms |
384 KB |
03.txt |
AC |
2 ms |
384 KB |
04.txt |
AC |
1 ms |
256 KB |
05.txt |
AC |
5 ms |
832 KB |
06.txt |
AC |
6 ms |
832 KB |
07.txt |
AC |
1 ms |
256 KB |
08.txt |
AC |
3 ms |
512 KB |
09.txt |
AC |
1 ms |
256 KB |
10.txt |
AC |
2 ms |
384 KB |
11.txt |
AC |
458 ms |
35176 KB |
12.txt |
AC |
1075 ms |
90080 KB |
13.txt |
AC |
204 ms |
8428 KB |
14.txt |
AC |
172 ms |
6892 KB |
15.txt |
AC |
172 ms |
7408 KB |
16.txt |
AC |
367 ms |
24680 KB |
17.txt |
AC |
1053 ms |
87648 KB |
18.txt |
AC |
159 ms |
7536 KB |
19.txt |
AC |
1045 ms |
89824 KB |
20.txt |
AC |
1028 ms |
90208 KB |
21.txt |
AC |
1007 ms |
90208 KB |
22.txt |
AC |
1040 ms |
90336 KB |
23.txt |
AC |
1043 ms |
90336 KB |
24.txt |
AC |
1024 ms |
90208 KB |
25.txt |
AC |
241 ms |
11500 KB |
26.txt |
AC |
176 ms |
7792 KB |
27.txt |
AC |
1028 ms |
90080 KB |
28.txt |
AC |
243 ms |
11244 KB |
29.txt |
AC |
1029 ms |
89568 KB |
30.txt |
AC |
249 ms |
12268 KB |
31.txt |
AC |
1033 ms |
91744 KB |
32.txt |
AC |
240 ms |
11372 KB |
33.txt |
AC |
179 ms |
8176 KB |
34.txt |
AC |
1031 ms |
90208 KB |
35.txt |
AC |
1020 ms |
90720 KB |
36.txt |
AC |
1 ms |
256 KB |
37.txt |
AC |
812 ms |
91232 KB |