Language: C++

#include <iostream>
#include <vector>
#include <algorithm>
#include <string>
#include <sstream>
#include <cstring>
#include <cstdio>
#include <cstdlib>
#include <cmath>
#include <queue>
#include <stack>
#include <map>
#include <set>
#include <numeric>
#include <cctype>
#include <tuple>
#include <array>

// BEGIN CUT HERE
#ifdef _MSC_VER
#include <agents.h>
#endif
// END CUT HERE 

#define FOR(i, a, b) for(int i = (a); i < (int)(b); ++i)
#define rep(i, n) FOR(i, 0, n)
#define ALL(v) begin(v), end(v)
#define REV(v) rbegin(v), rend(v)
#define MEMSET(v, s) memset(v, s, sizeof(v))
#define MP make_pair
#define MT make_tuple
#define X first
#define Y second

using namespace std;

typedef long long ll;
typedef pair<int, int> P;
typedef unsigned long long ull;

const int N = 110;
double C[N][N];

double prob[N][N];
double time[N][N];

int main(){
	C[0][0] = 1;
	rep(i, N - 1) rep(j, i + 1){
		C[i + 1][j] += C[i][j];
		C[i + 1][j + 1] += C[i][j];
	}

	int n, m, L;
	cin >> n >> m >> L;

	vector<int> p(n), t(n), v(n);
	rep(i, n) cin >> p[i] >> t[i] >> v[i];

	rep(i, n){
		if (!v[i]) continue;
		time[i][0] = (double)L / v[i];
		FOR(j, 1, m + 1) time[i][j] = time[i][j - 1] + t[i];

		FOR(j, 0, m + 1){
			prob[i][j] = C[m][j] * pow(p[i] / 100., j) * pow((1 - p[i] / 100.), m - j);
			//cout << pow(p[i] / 100., j) << ' ' << pow(1 - p[i] / 100., m-j) << endl;
		}
	}

	cout.setf(ios::fixed);
	cout.precision(10);

	rep(i, n){
		double a = 0;
		if (v[i]) rep(j, m + 1){
			double ct = time[i][j];
			double cp = prob[i][j];
			rep(k, n){
				if (i == k) continue;
				int idx = m;
				double tmp = 0;
				while (idx >= 0 && time[k][idx] > ct - (1e-9)) tmp += prob[k][idx--];
				cp *= tmp;
			}
			a += cp;
		}
		cout << a << endl;
	}


	return 0;
}

Compiler output:
a.cc:45:17: error: 'double time [110][110]' redeclared as different kind of entity
   45 | double time[N][N];
      |                 ^
In file included from /usr/include/pthread.h:23,
                 from /usr/include/x86_64-linux-gnu/c++/14/bits/gthr-default.h:35,
                 from /usr/include/x86_64-linux-gnu/c++/14/bits/gthr.h:157,
                 from /usr/include/c++/14/ext/atomicity.h:35,
                 from /usr/include/c++/14/bits/ios_base.h:39,
                 from /usr/include/c++/14/ios:44,
                 from /usr/include/c++/14/ostream:40,
                 from /usr/include/c++/14/iostream:41,
                 from a.cc:1:
/usr/include/time.h:76:15: note: previous declaration 'time_t time(time_t*)'
   76 | extern time_t time (time_t *__timer) __THROW;
      |               ^~~~
a.cc: In function 'int main()':
a.cc:62:23: warning: pointer to a function used in arithmetic [-Wpointer-arith]
   62 |                 time[i][0] = (double)L / v[i];
      |                       ^
a.cc:62:26: warning: pointer to a function used in arithmetic [-Wpointer-arith]
   62 |                 time[i][0] = (double)L / v[i];
      |                          ^
a.cc:62:28: error: assignment of read-only location '*(time + ((sizetype)i))'
   62 |                 time[i][0] = (double)L / v[i];
a.cc:63:40: warning: pointer to a function used in arithmetic [-Wpointer-arith]
   63 |                 FOR(j, 1, m + 1) time[i][j] = time[i][j - 1] + t[i];
      |                                        ^
a.cc:63:43: warning: pointer to a function used in arithmetic [-Wpointer-arith]
   63 |                 FOR(j, 1, m + 1) time[i][j] = time[i][j - 1] + t[i];
      |                                           ^
a.cc:63:53: warning: pointer to a function used in arithmetic [-Wpointer-arith]
   63 |                 FOR(j, 1, m + 1) time[i][j] = time[i][j - 1] + t[i];
      |                                                     ^
a.cc:63:60: warning: pointer to a function used in arithmetic [-Wpointer-arith]
   63 |                 FOR(j, 1, m + 1) time[i][j] = time[i][j - 1] + t[i];
      |                                                            ^
cc1plus: warning: pointer to a function used in arithmetic [-Wpointer-arith]
a.cc:63:62: warning: pointer to a function used in arithmetic [-Wpointer-arith]
   63 |                 FOR(j, 1, m + 1) time[i][j] = time[i][j - 1] + t[i];
a.cc:63:45: error: assignment of read-only location '*(time + (((sizetype)i) + ((sizetype)j)))'
   63 |                 FOR(j, 1, m + 1) time[i][j] = time[i][j - 1] + t[i];
a.cc:77:43: warning: pointer to a function used in arithmetic [-Wpointer-arith]
   77 |                         double ct = time[i][j];
      |                                           ^
a.cc:77:46: warning: pointer to a function used in arithmetic [-Wpointer-arith]
   77 |                         double ct = time[i][j];
      |                                              ^
a.cc:77:46: error: cannot convert 'time_t (*)(time_t*) noexcept' {aka 'long int (*)(long int*) noexcept'} to 'double' in initialization
   77 |                         double ct = time[i][j];
      |                                              ^
      |                                              |
      |                                              time_t (*)(time_t*) noexcept {aka long int (*)(long int*) noexcept}
a.cc:83:58: warning: pointer to a function used in arithmetic [-Wpointer-arith]
   83 |                                 while (idx >= 0 && time[k][idx] > ct - (1e-9)) tmp += prob[k][idx--];
      |                                                          ^
a.cc:83:63: warning: pointer to a function used in arithmetic [-Wpointer-arith]
   83 |                                 while (idx >= 0 && time[k][idx] > ct - (1e-9)) tmp += prob[k][idx--];
      |                                                               ^
a.cc:83:65: error: invalid operands of types 'time_t(time_t*) noexcept' {aka 'long int(long int*) noexcept'} and 'double' to binary 'operator>'
   83 |                                 while (idx >= 0 && time[k][idx] > ct - (1e-9)) tmp += prob[k][idx--];
      |                                                    ~~~~~~~~~~~~ ^ ~~~~~~~~~~~
      |                                                               |      |
      |                                                               |      double
      |                                                               time_t(time_t*) noexcept {aka long int(long int*) noexcept}