Submission #1244847


Source Code Expand

/*
#pragma region GNUC
//https://yukicoder.me/wiki/auto_vectorization
#ifdef __GNUC__
#pragma GCC optimize ("O3")
#pragma GCC target ("avx")
#endif
#pragma endregion
*/
#define _USE_MATH_DEFINES
#pragma region include
#include <iostream>
#include <iomanip>
#include <stdio.h>

#include <sstream>
#include <algorithm>
#include <cmath>

#include <string>
#include <cstring>
#include <vector>
#include <tuple>

#include <queue>
#include <complex>
#include <set>
#include <map>
#include <stack>
#include <list>

#include <fstream>
#include <random>
//#include <time.h>
#include <ctime>
#pragma endregion //#include
/////////
#define REP(i, x, n) for(int i = x; i < n; ++i)
#define rep(i,n) REP(i,0,n)
/////////
#pragma region typedef
typedef long long LL;
typedef long double LD;
typedef unsigned long long ULL;
#pragma endregion //typedef
////定数
const int INF = (int)1e9;
const LL MOD = (LL)1e9+7;
const LL LINF = (LL)1e18;
const double PI = acos(-1.0);
const double EPS = 1e-9;
/////////
using namespace::std;
/////////
#pragma region Math
#pragma region
template<class T>
inline T gcd(T a, T b){return b ? gcd(b, a % b) : a;}
#pragma endregion // 最大公約数 gcd
#pragma region
template<class T>
inline T lcm(T a, T b){return a / gcd(a, b) * b;}
#pragma endregion // 最小公倍数 lcm

//thx
//http://arc023.contest.atcoder.jp/submissions/172596
void solve(){
	int N,M;
	cin >> N >> M;

	map<int,LL> MM,MM2;//gcdの値,出現数
	map<int,LL> ans;//

	for(int i=0;i<N;++i){
		int A;
		cin >> A;//[1,10^9]
		MM2.clear();//ここに今回の計算結果を入れる
		for(map<int,LL>::iterator itr = MM.begin();
			itr != MM.end(); ++itr){
			int index = gcd(itr->first, A);
			ans[index] += itr->second;
			MM2[index] += itr->second;
		}
		++MM2[A];//Aの最大公約数はA
		++ans[A];
		swap(MM,MM2);//
	}

	for(int i=0;i<M;++i){
		int X;
		cin >> X;
		cout << ans[X] << endl;
	}
}

#pragma region main
signed main(void){
	std::cin.tie(0);
	std::ios::sync_with_stdio(false);
	std::cout << std::fixed;//小数を10進数表示
	cout << setprecision(16);//小数点以下の桁数を指定//coutとcerrで別	
	
	solve();
}
#pragma endregion //main()

Submission Info

Submission Time
Task D - GCD区間
User akarin55
Language C++14 (GCC 5.4.1)
Score 100
Code Size 2263 Byte
Status AC
Exec Time 328 ms
Memory 6784 KB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 100 / 100
Status
AC × 3
AC × 30
Set Name Test Cases
Sample subtask0_sample_01.txt, subtask0_sample_02.txt, subtask0_sample_03.txt
All subtask0_sample_01.txt, subtask0_sample_02.txt, subtask0_sample_03.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, subtask1_16.txt, subtask1_17.txt, subtask1_18.txt, subtask1_19.txt, subtask1_20.txt, subtask1_21.txt, subtask1_22.txt, subtask1_23.txt, subtask1_24.txt, subtask1_25.txt, subtask1_26.txt, subtask1_27.txt
Case Name Status Exec Time Memory
subtask0_sample_01.txt AC 1 ms 256 KB
subtask0_sample_02.txt AC 1 ms 256 KB
subtask0_sample_03.txt AC 1 ms 256 KB
subtask1_01.txt AC 4 ms 384 KB
subtask1_02.txt AC 4 ms 384 KB
subtask1_03.txt AC 4 ms 384 KB
subtask1_04.txt AC 287 ms 6784 KB
subtask1_05.txt AC 292 ms 6784 KB
subtask1_06.txt AC 17 ms 256 KB
subtask1_07.txt AC 14 ms 256 KB
subtask1_08.txt AC 14 ms 256 KB
subtask1_09.txt AC 42 ms 384 KB
subtask1_10.txt AC 42 ms 384 KB
subtask1_11.txt AC 328 ms 6656 KB
subtask1_12.txt AC 21 ms 256 KB
subtask1_13.txt AC 53 ms 256 KB
subtask1_14.txt AC 23 ms 256 KB
subtask1_15.txt AC 34 ms 256 KB
subtask1_16.txt AC 42 ms 256 KB
subtask1_17.txt AC 46 ms 256 KB
subtask1_18.txt AC 23 ms 256 KB
subtask1_19.txt AC 23 ms 256 KB
subtask1_20.txt AC 22 ms 256 KB
subtask1_21.txt AC 16 ms 256 KB
subtask1_22.txt AC 21 ms 256 KB
subtask1_23.txt AC 27 ms 256 KB
subtask1_24.txt AC 19 ms 256 KB
subtask1_25.txt AC 20 ms 384 KB
subtask1_26.txt AC 192 ms 6656 KB
subtask1_27.txt AC 214 ms 6656 KB