Skip to content

Instantly share code, notes, and snippets.

@vikrambiwal
Created December 22, 2022 03:34
Show Gist options
  • Save vikrambiwal/25f71e489ff365237a88abdf626c57c7 to your computer and use it in GitHub Desktop.
Save vikrambiwal/25f71e489ff365237a88abdf626c57c7 to your computer and use it in GitHub Desktop.
process.stdin.resume();
process.stdin.setEncoding('utf-8');
var input_ = "";
process.stdin.on('data', function (data) {
input_ += data.toString().trim();
input_ += '\n';
});
function array_queries(N, M, A, B, Q, queries) {
var out_1 = []
for(k=0; k < Q+1; k++){
out_1.push(array_sum( N, M, A, B)) // + " ";
if(k<Q){
array_sawp(A, B, Q, queries[k])
}
}
// console.log(out_1.join())
return out_1
}
function array_sum(N, M, A, B) {
let sum = 0
for(let i=0; i<N; i++){
for(let j=0; j<M; j++){
sum += (A[i]*B[j]*(i+j+2))%998244353
}
}
return sum
}
function array_sawp(A, B, Q, query) {
const r = query[0]
const i = query[1]-1
const j = query[2]-1
if(r==1){
const num = A[i]
A[i] = B[j]
B[j] = num
} else if(r==2){
const num = A[i]
A[i] = A[j]
A[j] = num
} else if(r==3){
const num = B[i]
B[i] = B[j]
B[j] = num
}
}
process.stdin.on('end', function () {
input_ = input_.replace(/\n$/, "");
input_ = input_.split("\n");
var idx_ = 0;
var T = parseInt(input_[idx_++].trim(), 10);
for(var t_i = 0; t_i < T; t_i++) {
var N = parseInt(input_[idx_++].trim(), 10);
var M = parseInt(input_[idx_++].trim(), 10);
var A = input_[idx_++].trim().split(' ').map(function(el) {
return parseInt(el, 10);
});
var B = input_[idx_++].trim().split(' ').map(function(el) {
return parseInt(el, 10);
});
var Q = parseInt(input_[idx_++].trim(), 10);
var queries = [];
for(var i_queries = 0; i_queries < Q; i_queries++) {
queries.push(input_[idx_++].trim().split(' ').map(function(el) {
return parseInt(el, 10);
}));
}
var out_ = array_queries( N, M, A, B, Q, queries);
process.stdout.write(out_.join(' '));
process.stdout.write('\n');
}
process.exit();
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment