Submission #382979

# Submission time Handle Problem Language Result Execution time Memory
382979 2021-03-28T16:17:47 Z victoriad Relativnost (COCI15_relativnost) C++14
0 / 140
408 ms 65540 KB
#include <fstream>
#include <cstdio>
#include <vector>
#include <iostream>
#include <algorithm>
#include <utility>
#include <queue>
using namespace std;
int mod=10007;
vector<pair<vector<int>,int> > todo;
void per(vector<int>&a,vector<int>&b,int & r,vector<int>&p,int i,int c,int nec,int u,int j){
if(u==a.size()){
    if(c>=nec){
        r+=j;
        r=r%mod;
        todo.push_back(make_pair(p,j));
        }
    
    return;
}
u++;
p[i]=0;

per(a,b,r,p,i+1,c,nec,u,(j*b[i])%mod);
p[i]=1;

per(a,b,r,p,i+1,c+1,nec,u,(j*a[i])%mod);
}


int main() {
    ios::sync_with_stdio(false);
    cin.tie(NULL);
    int n,c,q,p,l,r;
    cin>>n>>c;
    vector<int >a(n);
     vector<int>b(n);
     for(int i=0;i<n;i++){
         cin>>a[i];
     }
     for(int i=0;i<n;i++){
         cin>>b[i];
     }
     cin>>q;
     int re;
     for(int i=0;i<q;i++){
         vector<int>pr(n,0);
         cin>>p>>l>>r;
         if(i==0){
             if(c==n){
                a[p-1]=l;
                re=1;
                for(int k=0;k<n;k++){
                    re*=a[k];
                    re=re%mod;
                }
             }
             else{
                a[p-1]=l;
                b[p-1]=r;
                re=0;
                per(a,b,re,pr,0,0,c,0,1); 
             }
             cout<<re%mod<<"\n";
         }
         else if(i!=0 && a[p-1]==l&& b[p-1]==r){
             cout<<re%mod<<"\n";
         }
         else if(n==c){
             re/=a[p-1];
             re*=l;
             a[p-1]=l;
             cout<<re%mod<<"\n";
         }
         else{
             re=0;
           for(int i=0;i<todo.size();i++){
               if(todo[i].first[p-1]==1){
                todo[i].second/=a[p-1];
                todo[i].second*=l;
                todo[i].second%=mod;
               }
               else{
                todo[i].second/=b[p-1];
                todo[i].second*=r;
                todo[i].second%=mod;
               }
               re+=todo[i].second;
           } 
           cout<<re%mod<<"\n";
         }
         
     }

  return 0;
}








Compilation message

relativnost.cpp: In function 'void per(std::vector<int>&, std::vector<int>&, int&, std::vector<int>&, int, int, int, int, int)':
relativnost.cpp:12:5: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   12 | if(u==a.size()){
      |    ~^~~~~~~~~~
relativnost.cpp: In function 'int main()':
relativnost.cpp:77:25: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<std::pair<std::vector<int>, int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   77 |            for(int i=0;i<todo.size();i++){
      |                        ~^~~~~~~~~~~~
# Verdict Execution time Memory Grader output
1 Runtime error 43 ms 65540 KB Execution killed with signal 9
2 Runtime error 48 ms 65540 KB Execution killed with signal 9
3 Runtime error 408 ms 65536 KB Execution killed with signal 9
4 Runtime error 53 ms 65540 KB Execution killed with signal 9
5 Runtime error 59 ms 65536 KB Execution killed with signal 9
6 Runtime error 89 ms 65540 KB Execution killed with signal 9
7 Runtime error 55 ms 65540 KB Execution killed with signal 9
8 Runtime error 60 ms 65540 KB Execution killed with signal 9
9 Runtime error 57 ms 65540 KB Execution killed with signal 9
10 Runtime error 161 ms 65540 KB Execution killed with signal 9