답안 #382997

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
382997 2021-03-28T17:00:06 Z victoriad Relativnost (COCI15_relativnost) C++14
0 / 140
1380 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<bool>,int> > todo;
void per(vector<int>&a,vector<int>&b,int & r,vector<bool>&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]=false;
 
per(a,b,r,p,i+1,c,nec,u,(j*b[i])%mod);
p[i]=true;
 
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<bool>pr(n,false);
         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++){
               int j=todo[i].second;
               if(todo[i].first[p-1]){
                j/=a[p-1];
                j*=l;
                j%=mod;
    
               
               }
               else{
                j/=b[p-1];
                j*=r;
                j%=mod;
               
                
               }
               re+=j;
           } 
           cout<<re%mod<<"\n";
         }
         
     }
 
  return 0;
}
 
 
 
 
 
 
 
 

Compilation message

relativnost.cpp: In function 'void per(std::vector<int>&, std::vector<int>&, int&, std::vector<bool>&, 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<bool>, int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   77 |            for(int i=0;i<todo.size();i++){
      |                        ~^~~~~~~~~~~~
# 결과 실행 시간 메모리 Grader output
1 Runtime error 170 ms 65540 KB Execution killed with signal 9
2 Runtime error 174 ms 65540 KB Execution killed with signal 9
3 Runtime error 1380 ms 65536 KB Execution killed with signal 9
4 Runtime error 59 ms 65540 KB Execution killed with signal 9
5 Runtime error 69 ms 65540 KB Execution killed with signal 9
6 Runtime error 159 ms 65540 KB Execution killed with signal 9
7 Runtime error 62 ms 65540 KB Execution killed with signal 9
8 Runtime error 73 ms 65540 KB Execution killed with signal 9
9 Runtime error 65 ms 65540 KB Execution killed with signal 9
10 Runtime error 451 ms 65540 KB Execution killed with signal 9