Submission #3550799
Source Code Expand
#include <bits/stdc++.h>
#define FOR(i,a,b) for(int i=(a);i<(b);++i)
#define REP(i,n) for(int i=0;i<(n);++i)
#define REPr(i,n) for(int i=(n)-1;i>=0; --i)
#define FORq(i, m, n) for(int i = (m);i <= (n);++i)
#define rFORq(i, m , n) for(int i = (n);i >=(m);--i)
#define SCD(n) scanf("%d",&n)
#define SCD2(m,n) scanf("%d%d",&m,&n)
#define SCD3(m,n,k) scanf("%d%d%d",&m,&n,&k)
#define SCLLD(n) scanf("%lld",&n)
#define SCLLD2(m,n) scanf("%lld%lld",&m,&n)
#define SCLLD3(m,n,k) scanf("%lld%lld%lld",&m,&n,&k)
#define PB push_back
#define MP make_pair
#define ARSCD(A,N) REP(i,N){SCD(A[i]);}
#define ARSCD1(A,N) FORq(i,1,N){SCD(A[i]);}
#define VSCD(v,N) REP(i,N){int x; SCD(x); v.PB(x);}
#define VSCLLD(v,N) REP(i,N){long long x; SCLLD(x); v.PB(x);}
#define PRINTD(n) printf("%d\n",n)
#define PRINTLLD(n) printf("%lld\n",n)
#define DEBUG printf("%s\n","debug")
#define fst first
#define snd second
#define SIN(x,S) (S.count(x) != 0)
using namespace std;
typedef pair<int,int> PII;
typedef vector<int> VI;
typedef vector < VI > VVI;
typedef vector<long long> VL;
typedef long long ll;
typedef long long integer;
////////////////////////////////////////////////////////////////////
const ll p = 1000000007;
ll dx[4] = {-7,-1,1,7};
int main(){
ll N,M,Q; SCLLD3(N,M,Q);
static ll a[100002] = {};
static bool grid[200002] = {}; // partial
static bool visited[100002] = {};
static bool visited2[200002] = {};
//static bool visited[100002] = {};
ARSCD(a,Q);
REP(q,Q){
ll ai = a[q];
ll k = 0;
while(k*M + ai < 2*M){
grid[k*M+ai] = true;
k++;
}
}
/* FORq(i,0,2*M-1){
if (i % 7 == 0) printf("\n");
if (grid[i]) printf("%d",1);
else printf("%d",0);
}
printf("\n"); */
ll count1 = 0;
ll count2 = 0;
queue<ll> que;
// #1
FORq(i,0,M-1){
if (grid[i]) continue;
if (visited[i]) continue;
que.push(i);
//printf("start = %d\n",i);
while(!que.empty()){
ll now = que.front(); que.pop();
visited[now] = true;
REP(k,4){
ll next = now + dx[k];
if ((now % 7 == 0) and (k == 1)) continue;
if (next < 0) continue;
if (next >= M) continue;
if ((now % 7 == 6) and (k == 2)) continue;
if (grid[next]) continue;
if (visited[next]) continue;
//printf("next -> %lld\n",next);
que.push(next);
}
}
//printf("count+\n");
count1++;
}
//printf("count1 = %lld\n",count1);
// #2
FORq(i,0,2*M-1){
if (grid[i]) continue;
if (visited2[i]) continue;
que.push(i);
//printf("start = %d\n",i);
while(!que.empty()){
ll now = que.front(); que.pop();
visited2[now] = true;
REP(k,4){
ll next = now + dx[k];
if ((now % 7 == 0) and (k == 1)) continue;
if (next < 0) continue;
if (next >= 2*M) continue;
if ((now % 7 == 6) and (k == 2)) continue;
if (grid[next]) continue;
if (visited2[next]) continue;
//printf("next -> %lld\n",next);
que.push(next);
}
}
//printf("count+\n");
count2++;
}
//printf("count2 = %lld\n",count2);
ll A,B;
A = count2 - count1;
B = count1 - A;
ll c = 7*N / M;
PRINTLLD(A*c + B);
}
Submission Info
Submission Time
2018-11-06 10:01:04+0900
Task
C - Calendar 2
User
Lithium
Language
C++14 (GCC 5.4.1)
Score
90
Code Size
3716 Byte
Status
WA
Exec Time
1064 ms
Memory
123208 KB
Compile Error
./Main.cpp: In function ‘int main()’:
./Main.cpp:7:29: warning: format ‘%d’ expects argument of type ‘int*’, but argument 2 has type ‘ll* {aka long long int*}’ [-Wformat=]
#define SCD(n) scanf("%d",&n)
^
./Main.cpp:15:29: note: in expansion of macro ‘SCD’
#define ARSCD(A,N) REP(i,N){SCD(A[i]);}
^
./Main.cpp:43:5: note: in expansion of macro ‘ARSCD’
ARSCD(a,Q);
^
./Main.cpp:37:28: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
ll N,M,Q; SCLLD3(N,M,Q);
^
./Main.cpp:15:38: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
#define ARSCD(A,N) REP(i,N){SCD(A[i]);}
^
./Main.cpp:43:5: note: in expansion of macro ‘ARSCD’
ARSCD(a,Q);
^
Judge Result
Set Name
Sample
Subtask1
Subtask2
Subtask3
Subtask4
Score / Max Score
0 / 0
0 / 100
90 / 90
0 / 200
0 / 110
Status
Set Name
Test Cases
Sample
sub0_in1.txt, sub0_in2.txt
Subtask1
sub0_in1.txt, sub0_in2.txt, sub1_in1.txt, sub1_in2.txt, sub1_in3.txt, sub1_in4.txt, sub1_in5.txt
Subtask2
sub2_in1.txt
Subtask3
sub2_in1.txt, sub3_in1.txt, sub3_in2.txt
Subtask4
sub0_in1.txt, sub0_in2.txt, sub1_in1.txt, sub1_in2.txt, sub1_in3.txt, sub1_in4.txt, sub1_in5.txt, sub2_in1.txt, sub3_in1.txt, sub3_in2.txt, sub4_in1.txt, sub4_in2.txt
Case Name
Status
Exec Time
Memory
sub0_in1.txt
AC
1 ms
256 KB
sub0_in2.txt
AC
1 ms
256 KB
sub1_in1.txt
AC
1 ms
256 KB
sub1_in2.txt
AC
1 ms
256 KB
sub1_in3.txt
AC
1 ms
256 KB
sub1_in4.txt
WA
1 ms
256 KB
sub1_in5.txt
TLE
1057 ms
66296 KB
sub2_in1.txt
AC
10 ms
1152 KB
sub3_in1.txt
TLE
1064 ms
123208 KB
sub3_in2.txt
TLE
1059 ms
52536 KB
sub4_in1.txt
TLE
1063 ms
115840 KB
sub4_in2.txt
TLE
1058 ms
40344 KB