Copied the code from someone’s solutions:
#include <stdio.h> int main() { int t; long int n,i,j,k,a[7],sum; char *s[7]= {"MONDAY","TUESDAY","WEDNESDAY","THURSDAY","FRIDAY","SATURDAY", "SUNDAY"}; scanf("%d",&t); for (j=0; j<t; j++) { /////////////////////////// sum=0; scanf("%ld",&n); for(i=0; i<7; i++) { scanf("%ld",&a[i]); sum+=a[i]; } k=n%sum; i=0; if(k==0) for(i=6; i>=0; i--) { if(a[i]!=0) { printf("%s\n",s[i]); break; } } else { while(k>0) { if (i==7) i=0; k=k-a[i++]; } printf("%s\n",s[i-1]); } } return 0; }
code from editorial:
#include<bits/stdc++.h> using namespace std; typedef long long ll; int main() { ios::sync_with_stdio(false); vector<string> vecc(7); vecc[0]="MONDAY";vecc[1]="TUESDAY"; vecc[2]="WEDNESDAY";vecc[3]="THURSDAY"; vecc[4]="FRIDAY";vecc[5]="SATURDAY"; vecc[6]="SUNDAY"; ll t; cin>>t; while(t--) { ll n; cin>>n; ll s=0,arr[7],copyn=n; for(ll i=0;i<7;i++) { cin>>arr[i]; s+=arr[i]; } ll op=0; if(s!=1) //Optimization op=n/s; n=n-op*s; if(n==0) { n=copyn; } ll i=0; while(n>0) { i%=7; n-=arr[i]; i++; } cout<<vecc[i-1]<<endl; } return 0; }